--- a/gntbindable.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gntbindable.c Fri Apr 26 01:40:05 2019 -0400
@@ -122,6 +122,7 @@
const char *widget_name = g_type_name(G_OBJECT_TYPE(bindable));
GntWidget *bind_button, *cancel_button;
@@ -154,7 +155,8 @@
tmp = g_strdup_printf("KEY: \"%s\"", keys);
key_textview = gnt_text_view_new();
- gnt_widget_set_size(key_textview, key_textview->priv.x, 2);
+ gnt_widget_get_position(key_textview, &x, NULL); + gnt_widget_set_size(key_textview, x, 2); gnt_text_view_append_text_with_flags(GNT_TEXT_VIEW(key_textview), tmp, GNT_TEXT_FLAG_NORMAL);
gnt_widget_set_name(key_textview, "keystroke");
--- a/gntbox.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gntbox.c Fri Apr 26 01:40:05 2019 -0400
@@ -136,8 +136,7 @@
+ gnt_widget_get_position(widget, &curx, &cury); if (gnt_widget_get_has_border(widget)) {
@@ -182,10 +181,14 @@
+ gnt_widget_get_position(widget, NULL, &widgety); widget->priv.width = max;
- widget->priv.height = cury - widget->priv.y;
+ widget->priv.height = cury - widgety; - widget->priv.width = curx - widget->priv.x;
+ gnt_widget_get_position(widget, &widgetx, NULL); + widget->priv.width = curx - widgetx; widget->priv.height = max;
@@ -196,15 +199,18 @@
GntBox *box = GNT_BOX(widget);
GntBoxPrivate *priv = gnt_box_get_instance_private(box);
- changex = widget->priv.x - x;
- changey = widget->priv.y - y;
+ gnt_widget_get_position(widget, &widgetx, &widgety); for (iter = priv->list; iter; iter = iter->next) {
GntWidget *w = GNT_WIDGET(iter->data);
- gnt_widget_set_position(w, w->priv.x - changex,
+ gnt_widget_get_position(w, &wx, &wy); + gnt_widget_set_position(w, wx - changex, wy - changey); @@ -421,7 +427,11 @@
gnt_box_expose(GntWidget *widget, int x, int y, int width, int height)
- WINDOW *win = newwin(height, width, widget->priv.y + y, widget->priv.x + x);
+ gnt_widget_get_position(widget, &widgetx, &widgety); + win = newwin(height, width, widgety + y, widgetx + x); copywin(widget->window, win, y, x, 0, 0, height - 1, width - 1, FALSE);
@@ -782,12 +792,14 @@
GntBoxPrivate *priv = NULL;
GntWidget *widget = NULL;
g_return_if_fail(GNT_IS_BOX(box));
priv = gnt_box_get_instance_private(box);
widget = GNT_WIDGET(box);
+ gnt_widget_get_position(widget, &widgetx, &widgety); pos = gnt_widget_get_has_border(widget) ? 1 : 0;
@@ -797,7 +809,7 @@
for (iter = priv->list; iter; iter = iter->next) {
GntWidget *w = GNT_WIDGET(iter->data);
if (G_UNLIKELY(w == NULL)) {
@@ -812,8 +824,9 @@
gnt_widget_get_size(w, &width, &height);
- x = w->priv.x - widget->priv.x;
- y = w->priv.y - widget->priv.y;
+ gnt_widget_get_position(w, &x, &y); @@ -837,7 +850,7 @@
copywin(w->window, widget->window, 0, 0,
y, x, y + height - 1, x + width - 1, FALSE);
- gnt_widget_set_position(w, x + widget->priv.x, y + widget->priv.y);
+ gnt_widget_set_position(w, x + widgetx, y + widgety); wmove(widget->window, y + getcury(w->window), x + getcurx(w->window));
--- a/gntcombobox.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gntcombobox.c Fri Apr 26 01:40:05 2019 -0400
@@ -135,16 +135,21 @@
GntWidget *widget = GNT_WIDGET(box);
GntWidget *parent = gnt_widget_get_parent(box->dropdown);
- int height = g_list_length(gnt_tree_get_rows(GNT_TREE(box->dropdown)));
- int y = widget->priv.y + widget->priv.height - 1;
+ gnt_widget_get_position(widget, &widgetx, &widgety); + height = g_list_length(gnt_tree_get_rows(GNT_TREE(box->dropdown))); + y = widgety + widget->priv.height - 1; gnt_widget_set_size(box->dropdown, widget->priv.width, height + 2);
if (y + height + 2 >= getmaxy(stdscr))
- y = widget->priv.y - height - 1;
- gnt_widget_set_position(parent, widget->priv.x, y);
+ y = widgety - height - 1; + gnt_widget_set_position(parent, widgetx, y); - mvwin(parent->window, y, widget->priv.x);
+ mvwin(parent->window, y, widgetx); wresize(parent->window, height+2, widget->priv.width);
parent->priv.width = widget->priv.width;
--- a/gntmain.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gntmain.c Fri Apr 26 01:40:05 2019 -0400
@@ -180,11 +180,13 @@
while ((p = panel_below(p)) != NULL) {
const GntNode *node = panel_userptr(p);
- if (x >= wid->priv.x && x < wid->priv.x + wid->priv.width) {
- if (y >= wid->priv.y && y < wid->priv.y + wid->priv.height) {
+ gnt_widget_get_position(wid, &widx, &widy); + if (widx <= x && x < widx + wid->priv.width) { + if (widy <= y && y < widy + wid->priv.height) { @@ -219,11 +221,13 @@
if (event == GNT_LEFT_MOUSE_DOWN && widget &&
widget != wm->_list.window && !gnt_widget_get_transient(widget)) {
if (!gnt_ws_is_top_widget(wm->cws, widget)) {
gnt_wm_raise_window(wm, widget);
- if (y == widget->priv.y) {
- offset = x - widget->priv.x;
+ gnt_widget_get_position(widget, &widgetx, &widgety); --- a/gntmenu.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gntmenu.c Fri Apr 26 01:40:05 2019 -0400
@@ -99,6 +99,10 @@
if (menu->type == GNT_MENU_TOPLEVEL) {
+ gnt_widget_get_position(widget, &x, &y); wbkgdset(widget->window, '\0' | gnt_color_pair(GNT_COLOR_HIGHLIGHT));
@@ -116,8 +120,8 @@
gnt_menuitem_set_position(
- item, getcurx(widget->window) + widget->priv.x,
- getcury(widget->window) + widget->priv.y + 1);
+ item, getcurx(widget->window) + x, + getcury(widget->window) + y + 1); wbkgdset(widget->window, type);
wprintw(widget->window, " %s ",
C_(gnt_menuitem_get_text(item)));
@@ -265,12 +269,11 @@
if (menu->type != GNT_MENU_TOPLEVEL) {
GntWidget *widget = GNT_WIDGET(menu);
+ gnt_widget_get_position(widget, &x, &y); gnt_menuitem_set_position(
- widget->priv.x + widget->priv.width - 1,
- gnt_tree_get_selection_visible_line(
+ item, x + widget->priv.width - 1, + y + gnt_tree_get_selection_visible_line( gnt_menuitem_get_position(item, &x, &y);
gnt_widget_set_position(GNT_WIDGET(sub), x, y);
@@ -517,8 +520,7 @@
if (type == GNT_MENU_TOPLEVEL) {
+ gnt_widget_set_position(widget, 0, 0); gnt_tree_set_show_separator(GNT_TREE(widget), FALSE);
g_object_set(G_OBJECT(widget), "columns", NUM_COLUMNS, NULL);
--- a/gnttextview.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gnttextview.c Fri Apr 26 01:40:05 2019 -0400
@@ -324,16 +324,22 @@
} else if (event == GNT_MOUSE_SCROLL_DOWN) {
gnt_text_view_scroll(GNT_TEXT_VIEW(widget), 1);
} else if (event == GNT_LEFT_MOUSE_DOWN) {
- select_start = gnt_text_view_get_p(GNT_TEXT_VIEW(widget), x - widget->priv.x, y - widget->priv.y);
+ gnt_widget_get_position(widget, &widgetx, &widgety); + select_start = gnt_text_view_get_p(GNT_TEXT_VIEW(widget), + x - widgetx, y - widgety); g_timeout_add(500, too_slow, NULL);
} else if (event == GNT_MOUSE_UP) {
GntTextView *view = GNT_TEXT_VIEW(widget);
if (text_view_contains(view, select_start)) {
g_return_val_if_fail(select_start != NULL, TRUE);
- select_end = gnt_text_view_get_p(view, x - widget->priv.x, y - widget->priv.y);
+ gnt_widget_get_position(widget, &widgetx, &widgety); + select_end = gnt_text_view_get_p(view, x - widgetx, g_return_val_if_fail(select_end != NULL, TRUE);
--- a/gnttree.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gnttree.c Fri Apr 26 01:40:05 2019 -0400
@@ -953,7 +953,7 @@
gnt_tree_clicked(GntWidget *widget, GntMouseEvent event, G_GNUC_UNUSED int x,
GntTree *tree = GNT_TREE(widget);
GntTreePrivate *priv = gnt_tree_get_instance_private(tree);
@@ -965,11 +965,13 @@
action_down(GNT_BINDABLE(widget), NULL);
} else if (event == GNT_LEFT_MOUSE_DOWN) {
int pos = gnt_widget_get_has_border(widget) ? 1 : 0;
- pos = y - widget->priv.y - pos;
+ gnt_widget_get_position(widget, NULL, &widgety); + pos = y - widgety - pos; row = get_next_n(priv->top, pos);
if (row && priv->current != row) {
GntTreeRow *old = priv->current;
--- a/gntwm.c Sat Apr 27 21:40:01 2019 +0000
+++ b/gntwm.c Fri Apr 26 01:40:05 2019 -0400
@@ -1785,8 +1785,7 @@
if (!gnt_widget_has_shadow(widget))
+ gnt_widget_get_position(widget, &x, &y); w = widget->priv.width + shadow;
h = widget->priv.height + shadow;
@@ -2154,8 +2153,7 @@
GntPosition *p = g_new0(GntPosition, 1);
GntWidget *wid = node->me;
+ gnt_widget_get_position(wid, &p->x, &p->y); g_hash_table_replace(wm->positions, g_strdup(title), p);
write_positions_to_file(wm);