From 66fbb0c8612c7bb0751238d942beb25190c9a0a3 Mon Sep 17 00:00:00 2001 From: Robinson Date: Thu, 11 Mar 2021 22:07:25 +0100 Subject: [PATCH] Added realize/destroy for getMenuEntryImageSize --- src/dorkbox/jna/linux/GtkTheme.java | 29 ++++++++++++++++++++--------- 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/dorkbox/jna/linux/GtkTheme.java b/src/dorkbox/jna/linux/GtkTheme.java index 17db290..24f8e42 100644 --- a/src/dorkbox/jna/linux/GtkTheme.java +++ b/src/dorkbox/jna/linux/GtkTheme.java @@ -96,19 +96,30 @@ class GtkTheme { Pointer offscreen = Gtk2.gtk_offscreen_window_new(); // get the default icon size for the "paste" icon. - Pointer item = Gtk2.gtk_image_menu_item_new_from_stock("gtk-paste", null); + Pointer item = null; - Gtk2.gtk_container_add(offscreen, item); + try { + item = Gtk2.gtk_image_menu_item_new_from_stock("gtk-paste", null); - PointerByReference r = new PointerByReference(); - GObject.g_object_get(item, "image", r.getPointer(), null); + Gtk2.gtk_container_add(offscreen, item); + Gtk2.gtk_widget_realize(item); + Gtk2.gtk_widget_show_all(item); - Pointer imageWidget = r.getValue(); - GtkRequisition gtkRequisition = new GtkRequisition(); - Gtk2.gtk_widget_size_request(imageWidget, gtkRequisition.getPointer()); - gtkRequisition.read(); + PointerByReference r = new PointerByReference(); + GObject.g_object_get(item, "image", r.getPointer(), null); - imageHeight.set(gtkRequisition.height); + Pointer imageWidget = r.getValue(); + + GtkRequisition gtkRequisition = new GtkRequisition(); + Gtk2.gtk_widget_size_request(imageWidget, gtkRequisition.getPointer()); + gtkRequisition.read(); + + imageHeight.set(gtkRequisition.height); + } finally { + if (item != null) { + Gtk2.gtk_widget_destroy(item); + } + } } });