--- a/gntmenu.c Sun Sep 27 21:30:55 2020 -0500
+++ b/gntmenu.c Mon Sep 28 17:55:33 2020 -0500
@@ -57,13 +57,6 @@
-static void (*org_draw)(GntWidget *wid);
-static void (*org_destroy)(GntWidget *wid);
-static void (*org_map)(GntWidget *wid);
-static void (*org_size_request)(GntWidget *wid);
-static gboolean (*org_key_pressed)(GntWidget *w, const char *t);
-static gboolean (*org_clicked)(GntWidget *w, GntMouseEvent event, int x, int y);
static void menuitem_activate(GntMenu *menu, GntMenuItem *item);
G_DEFINE_TYPE(GntMenu, gnt_menu, GNT_TYPE_TREE)
@@ -128,7 +121,7 @@
C_(gnt_menuitem_get_text(item)));
+ GNT_WIDGET_CLASS(gnt_menu_parent_class)->draw(widget); @@ -141,7 +134,7 @@
gnt_widget_set_internal_size(widget, getmaxx(stdscr), 1);
- org_size_request(widget);
+ GNT_WIDGET_CLASS(gnt_menu_parent_class)->size_request(widget); gnt_widget_get_internal_size(widget, &width, NULL);
gnt_widget_set_internal_size(widget, width,
g_list_length(menu->list) + 2);
@@ -247,7 +240,7 @@
GntMenuItem *item = GNT_MENU_ITEM(iter->data);
menu_tree_add(menu, item, NULL);
+ GNT_WIDGET_CLASS(gnt_menu_parent_class)->map(widget); gnt_tree_adjust_columns(GNT_TREE(widget));
@@ -403,7 +396,8 @@
if (gnt_bindable_perform_action_key(GNT_BINDABLE(widget), text))
- return org_key_pressed(widget, text);
+ return GNT_WIDGET_CLASS(gnt_menu_parent_class) + ->key_pressed(widget, text); return gnt_bindable_perform_action_key(GNT_BINDABLE(widget), text);
@@ -415,7 +409,7 @@
GntMenu *menu = GNT_MENU(widget);
g_list_free_full(menu->list, g_object_unref);
+ GNT_WIDGET_CLASS(gnt_menu_parent_class)->destroy(widget); @@ -466,11 +460,17 @@
gnt_menu_clicked(GntWidget *widget, GntMouseEvent event, int x, int y)
- if (GNT_MENU(widget)->type != GNT_MENU_POPUP)
+ gboolean (*clicked)(GntWidget * w, GntMouseEvent event, int x, int y); + if (GNT_MENU(widget)->type != GNT_MENU_POPUP) { - if (org_clicked && org_clicked(widget, event, x, y))
+ clicked = GNT_WIDGET_CLASS(gnt_menu_parent_class)->clicked; + if (clicked && clicked(widget, event, x, y)) { gnt_widget_activate(widget);
@@ -481,13 +481,6 @@
GntWidgetClass *widget_class = GNT_WIDGET_CLASS(klass);
GntTreeClass *tree_class = GNT_TREE_CLASS(klass);
- org_destroy = widget_class->destroy;
- org_map = widget_class->map;
- org_draw = widget_class->draw;
- org_key_pressed = widget_class->key_pressed;
- org_size_request = widget_class->size_request;
- org_clicked = widget_class->clicked;
widget_class->destroy = gnt_menu_destroy;
widget_class->draw = gnt_menu_draw;
widget_class->map = gnt_menu_map;
--- a/gntwindow.c Sun Sep 27 21:30:55 2020 -0500
+++ b/gntwindow.c Mon Sep 28 17:55:33 2020 -0500
@@ -43,8 +43,6 @@
static guint signals[SIGS] = { 0 };
-static void (*org_destroy)(GntWidget *widget);
G_DEFINE_TYPE_WITH_PRIVATE(GntWindow, gnt_window, GNT_TYPE_BOX)
@@ -77,7 +75,7 @@
g_clear_pointer((GntWidget **)&priv->menu, gnt_widget_destroy);
g_clear_pointer(&priv->accels, g_hash_table_destroy);
+ GNT_WIDGET_CLASS(gnt_window_parent_class)->destroy(widget); @@ -86,7 +84,6 @@
GntBindableClass *bindable = GNT_BINDABLE_CLASS(klass);
GntWidgetClass *widget_class = GNT_WIDGET_CLASS(klass);
- org_destroy = widget_class->destroy;
widget_class->destroy = gnt_window_destroy;
signals[SIG_WORKSPACE_HIDE] =
--- a/wms/irssi.c Sun Sep 27 21:30:55 2020 -0500
+++ b/wms/irssi.c Mon Sep 28 17:55:33 2020 -0500
@@ -50,8 +50,6 @@
G_DEFINE_TYPE(GntIrssiWM, gnt_irssi_wm, GNT_TYPE_WM)
void gntwm_init(GntWM **wm);
-static void (*org_new_window)(GntWM *wm, GntWidget *win);
get_xywh_for_frame(GntIrssiWM *irssi, int hor, int vert, int *x, int *y, int *w,
@@ -166,7 +164,7 @@
draw_line_separators(irssi);
- org_new_window(wm, win);
+ GNT_WM_CLASS(gnt_irssi_wm_parent_class)->new_window(wm, win); @@ -177,7 +175,7 @@
get_xywh_for_frame(irssi, 0, 0, &x, &y, &w, &h);
remove_border_set_position_size(wm, win, x, y, w, h);
- org_new_window(wm, win);
+ GNT_WM_CLASS(gnt_irssi_wm_parent_class)->new_window(wm, win); @@ -349,8 +347,6 @@
GntWMClass *pclass = GNT_WM_CLASS(klass);
- org_new_window = pclass->new_window;
pclass->new_window = irssi_new_window;
pclass->window_resized = irssi_window_resized;
pclass->close_window = irssi_close_window;
--- a/wms/s.c Sun Sep 27 21:30:55 2020 -0500
+++ b/wms/s.c Mon Sep 28 17:55:33 2020 -0500
@@ -35,8 +35,6 @@
G_DEFINE_TYPE(GntSWM, gnt_s_wm, GNT_TYPE_WM)
void gntwm_init(GntWM **wm);
-static void (*org_new_window)(GntWM *wm, GntWidget *win);
envelope_main_window(GntWidget *win)
@@ -128,7 +126,7 @@
- org_new_window(wm, win);
+ GNT_WM_CLASS(gnt_s_wm_parent_class)->new_window(wm, win); gnt_wm_raise_window(wm, win);
@@ -187,8 +185,6 @@
GntWMClass *pclass = GNT_WM_CLASS(klass);
- org_new_window = pclass->new_window;
pclass->new_window = s_new_window;
pclass->decorate_window = s_decorate_window;
pclass->window_update = s_window_update;