build: GTK deprecation cleanup + follow-up warning fixes

This commit is contained in:
2026-03-11 01:49:14 -06:00
parent c0e5ef79ec
commit 0f036383b2
21 changed files with 127 additions and 59 deletions

View File

@@ -47,8 +47,6 @@ config_h.set('G_DISABLE_SINGLE_INCLUDES', true)
config_h.set('GTK_DISABLE_DEPRECATED', true) config_h.set('GTK_DISABLE_DEPRECATED', true)
config_h.set('GTK_DISABLE_SINGLE_INCLUDES', true) config_h.set('GTK_DISABLE_SINGLE_INCLUDES', true)
config_h.set('GDK_PIXBUF_DISABLE_SINGLE_INCLUDES', true) config_h.set('GDK_PIXBUF_DISABLE_SINGLE_INCLUDES', true)
config_h.set('GLIB_VERSION_MAX_ALLOWED', 'GLIB_VERSION_2_36')
config_h.set('GLIB_VERSION_MIN_REQUIRED', 'GLIB_VERSION_2_36')
# Detected features # Detected features
config_h.set('HAVE_MEMRCHR', cc.has_function('memrchr')) config_h.set('HAVE_MEMRCHR', cc.has_function('memrchr'))
@@ -94,7 +92,10 @@ if host_machine.system() == 'windows'
endif endif
global_cflags = [] global_cflags = [
'-DGLIB_VERSION_MAX_ALLOWED=GLIB_VERSION_2_36',
'-DGLIB_VERSION_MIN_REQUIRED=GLIB_VERSION_2_36',
]
test_cflags = [ test_cflags = [
'-funsigned-char', '-funsigned-char',
'-Wno-conversion', '-Wno-conversion',

View File

@@ -58,6 +58,8 @@ foreach flag : ret.stdout().strip().split(' ')
endif endif
endforeach endforeach
perl_cflags += ['-Wno-strict-prototypes']
perl_cflags += [ perl_cflags += [
# Perl has its own 'config.h' that we must override # Perl has its own 'config.h' that we must override
# TODO: Just rename ours to something more unique. # TODO: Just rename ours to something more unique.

View File

@@ -22,8 +22,13 @@
#include <glib/gstdio.h> #include <glib/gstdio.h>
#include <gio/gio.h> #include <gio/gio.h>
#include <errno.h> #include <errno.h>
#include <stdlib.h>
#include <string.h> #include <string.h>
#ifndef G_OS_WIN32
extern char *realpath (const char *path, char *resolved_path);
#endif
#include "util.h" #include "util.h"
#include "cfgfiles.h" #include "cfgfiles.h"
@@ -494,6 +499,49 @@ discover_dir (GPtrArray *themes, GHashTable *seen_theme_roots, const char *base_
} }
static char *
path_canonicalize_compat (const char *path)
{
char *absolute_path;
char *cwd;
char *resolved;
if (!path || path[0] == '\0')
return NULL;
if (g_path_is_absolute (path))
absolute_path = g_strdup (path);
else
{
cwd = g_get_current_dir ();
absolute_path = g_build_filename (cwd, path, NULL);
g_free (cwd);
}
#ifdef G_OS_WIN32
resolved = _fullpath (NULL, absolute_path, 0);
if (resolved)
{
char *copy = g_strdup (resolved);
free (resolved);
g_free (absolute_path);
return copy;
}
#else
resolved = realpath (absolute_path, NULL);
if (resolved)
{
char *copy = g_strdup (resolved);
free (resolved);
g_free (absolute_path);
return copy;
}
#endif
return absolute_path;
}
static char * static char *
path_normalize_theme_root (const char *path) path_normalize_theme_root (const char *path)
{ {
@@ -503,7 +551,7 @@ path_normalize_theme_root (const char *path)
if (!path || path[0] == '\0') if (!path || path[0] == '\0')
return NULL; return NULL;
canonical = g_canonicalize_filename (path, NULL); canonical = path_canonicalize_compat (path);
target = g_file_read_link (canonical, NULL); target = g_file_read_link (canonical, NULL);
if (target && target[0]) if (target && target[0])
{ {
@@ -512,7 +560,7 @@ path_normalize_theme_root (const char *path)
? g_strdup (target) ? g_strdup (target)
: g_build_filename (base, target, NULL); : g_build_filename (base, target, NULL);
g_free (canonical); g_free (canonical);
canonical = g_canonicalize_filename (resolved, NULL); canonical = path_canonicalize_compat (resolved);
g_free (resolved); g_free (resolved);
g_free (base); g_free (base);
} }
@@ -536,7 +584,7 @@ add_theme_root (GPtrArray *roots, GHashTable *seen, const char *path)
if (!path || path[0] == '\0') if (!path || path[0] == '\0')
return; return;
normalized = g_canonicalize_filename (path, NULL); normalized = path_canonicalize_compat (path);
if (g_hash_table_contains (seen, normalized)) if (g_hash_table_contains (seen, normalized))
{ {
g_free (normalized); g_free (normalized);

View File

@@ -398,8 +398,7 @@ banlist_button_pressed (GtkWidget *wid, GdkEventButton *event, gpointer userdata
gtk_menu_shell_append (GTK_MENU_SHELL(menu), allitem); gtk_menu_shell_append (GTK_MENU_SHELL(menu), allitem);
gtk_widget_show_all (menu); gtk_widget_show_all (menu);
gtk_menu_popup (GTK_MENU(menu), NULL, NULL, NULL, NULL, gtk_menu_popup_at_pointer (GTK_MENU (menu), (GdkEvent *) event);
event->button, gtk_get_current_event_time ());
} }
return TRUE; return TRUE;

View File

@@ -535,7 +535,7 @@ chanlist_join (GtkWidget * wid, server *serv)
g_snprintf (tbuf, sizeof (tbuf), "join %s", chan); g_snprintf (tbuf, sizeof (tbuf), "join %s", chan);
handle_command (serv->server_session, tbuf, FALSE); handle_command (serv->server_session, tbuf, FALSE);
} else } else
gdk_beep (); gdk_display_beep (gdk_display_get_default ());
g_free (chan); g_free (chan);
} }
} }
@@ -595,10 +595,16 @@ chanlist_save (GtkWidget * wid, server *serv)
static gboolean static gboolean
chanlist_flash (server *serv) chanlist_flash (server *serv)
{ {
if (gtk_widget_get_state (serv->gui->chanlist_refresh) != GTK_STATE_ACTIVE) if (!(gtk_widget_get_state_flags (serv->gui->chanlist_refresh) & GTK_STATE_FLAG_ACTIVE))
gtk_widget_set_state (serv->gui->chanlist_refresh, GTK_STATE_ACTIVE); {
gtk_widget_unset_state_flags (serv->gui->chanlist_refresh, GTK_STATE_FLAG_PRELIGHT);
gtk_widget_set_state_flags (serv->gui->chanlist_refresh, GTK_STATE_FLAG_ACTIVE, FALSE);
}
else else
gtk_widget_set_state (serv->gui->chanlist_refresh, GTK_STATE_PRELIGHT); {
gtk_widget_unset_state_flags (serv->gui->chanlist_refresh, GTK_STATE_FLAG_ACTIVE);
gtk_widget_set_state_flags (serv->gui->chanlist_refresh, GTK_STATE_FLAG_PRELIGHT, FALSE);
}
return TRUE; return TRUE;
} }
@@ -872,7 +878,7 @@ chanlist_opengui (server *serv, int do_refresh)
chanlist_add_column (view, COL_CHANNEL, 96, _("Channel"), FALSE); chanlist_add_column (view, COL_CHANNEL, 96, _("Channel"), FALSE);
chanlist_add_column (view, COL_USERS, 50, _("Users"), TRUE); chanlist_add_column (view, COL_USERS, 50, _("Users"), TRUE);
chanlist_add_column (view, COL_TOPIC, 50, _("Topic"), FALSE); chanlist_add_column (view, COL_TOPIC, 50, _("Topic"), FALSE);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
/* this is a speed up, but no horizontal scrollbar :( */ /* this is a speed up, but no horizontal scrollbar :( */
/*gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (view), TRUE);*/ /*gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (view), TRUE);*/
gtk_widget_show (view); gtk_widget_show (view);

View File

@@ -102,10 +102,10 @@ cv_tabs_sizealloc (GtkWidget *widget, GtkAllocation *allocation, chanview *cv)
if (cv->vertical) if (cv->vertical)
{ {
adj = gtk_viewport_get_vadjustment (GTK_VIEWPORT (gtk_widget_get_parent (inner))); adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (gtk_widget_get_parent (inner)));
} else } else
{ {
adj = gtk_viewport_get_hadjustment (GTK_VIEWPORT (gtk_widget_get_parent (inner))); adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (gtk_widget_get_parent (inner)));
} }
viewport_size = cv_tabs_get_viewport_size (parent_win, cv->vertical); viewport_size = cv_tabs_get_viewport_size (parent_win, cv->vertical);
@@ -264,10 +264,10 @@ tab_scroll_left_up_clicked (GtkWidget *widget, chanview *cv)
if (cv->vertical) if (cv->vertical)
{ {
adj = gtk_viewport_get_vadjustment (GTK_VIEWPORT (gtk_widget_get_parent(inner))); adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (gtk_widget_get_parent(inner)));
} else } else
{ {
adj = gtk_viewport_get_hadjustment (GTK_VIEWPORT (gtk_widget_get_parent(inner))); adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (gtk_widget_get_parent(inner)));
} }
viewport_size = cv_tabs_get_viewport_size (parent_win, cv->vertical); viewport_size = cv_tabs_get_viewport_size (parent_win, cv->vertical);
@@ -302,10 +302,10 @@ tab_scroll_right_down_clicked (GtkWidget *widget, chanview *cv)
if (cv->vertical) if (cv->vertical)
{ {
adj = gtk_viewport_get_vadjustment (GTK_VIEWPORT (gtk_widget_get_parent(inner))); adj = gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (gtk_widget_get_parent(inner)));
} else } else
{ {
adj = gtk_viewport_get_hadjustment (GTK_VIEWPORT (gtk_widget_get_parent(inner))); adj = gtk_scrollable_get_hadjustment (GTK_SCROLLABLE (gtk_widget_get_parent(inner)));
} }
viewport_size = cv_tabs_get_viewport_size (parent_win, cv->vertical); viewport_size = cv_tabs_get_viewport_size (parent_win, cv->vertical);

View File

@@ -839,7 +839,7 @@ fe_dcc_open_recv_win (int passive)
gtk_widget_set_vexpand (view_scrolled, TRUE); gtk_widget_set_vexpand (view_scrolled, TRUE);
gtk_widget_set_hexpand (view, TRUE); gtk_widget_set_hexpand (view, TRUE);
gtk_widget_set_vexpand (view, TRUE); gtk_widget_set_vexpand (view, TRUE);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
/* Up/Down Icon column */ /* Up/Down Icon column */
gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), -1, NULL, gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (view), -1, NULL,
gtk_cell_renderer_pixbuf_new (), gtk_cell_renderer_pixbuf_new (),
@@ -1116,7 +1116,7 @@ fe_dcc_open_chat_win (int passive)
dcc_add_column (view, CCOL_START, CCOL_COLOR, _("Start Time"), FALSE); dcc_add_column (view, CCOL_START, CCOL_COLOR, _("Start Time"), FALSE);
gtk_tree_view_column_set_expand (gtk_tree_view_get_column (GTK_TREE_VIEW (view), 1), TRUE); gtk_tree_view_column_set_expand (gtk_tree_view_get_column (GTK_TREE_VIEW (view), 1), TRUE);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
dcccwin.list = view; dcccwin.list = view;
dcccwin.store = store; dcccwin.store = store;

View File

@@ -293,7 +293,7 @@ editlist_treeview_new (GtkWidget *box, char *title1, char *title2)
g_signal_connect (G_OBJECT (view), "key_press_event", g_signal_connect (G_OBJECT (view), "key_press_event",
G_CALLBACK (editlist_keypress), NULL); G_CALLBACK (editlist_keypress), NULL);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
render = gtk_cell_renderer_text_new (); render = gtk_cell_renderer_text_new ();
g_object_set (render, "editable", TRUE, NULL); g_object_set (render, "editable", TRUE, NULL);

View File

@@ -922,7 +922,7 @@ fe_beep (session *sess)
if (ca_context_play (ca_con, 0, CA_PROP_EVENT_ID, "message-new-instant", NULL) != 0) if (ca_context_play (ca_con, 0, CA_PROP_EVENT_ID, "message-new-instant", NULL) != 0)
#endif #endif
gdk_beep (); gdk_display_beep (gdk_display_get_default ());
#endif #endif
} }
@@ -1308,7 +1308,7 @@ fe_open_url_inner (const char *url)
g_clear_error (&error); g_clear_error (&error);
} }
if (!opened && gtk_show_uri (NULL, escaped_url, GDK_CURRENT_TIME, &error)) if (!opened && gtk_show_uri_on_window (NULL, escaped_url, GDK_CURRENT_TIME, &error))
{ {
opened = TRUE; opened = TRUE;
} }

View File

@@ -825,7 +825,6 @@ fe_get_int (char *msg, int def, void *callback, void *userdata)
gtk_adjustment_set_lower (adj, 0); gtk_adjustment_set_lower (adj, 0);
gtk_adjustment_set_upper (adj, 1024); gtk_adjustment_set_upper (adj, 1024);
gtk_adjustment_set_step_increment (adj, 1); gtk_adjustment_set_step_increment (adj, 1);
gtk_adjustment_changed (adj);
gtk_spin_button_set_value ((GtkSpinButton*)spin, def); gtk_spin_button_set_value ((GtkSpinButton*)spin, def);
gtk_box_pack_end (GTK_BOX (hbox), spin, 0, 0, 0); gtk_box_pack_end (GTK_BOX (hbox), spin, 0, 0, 0);
@@ -1126,7 +1125,7 @@ gtkutil_tray_icon_supported (GtkWindow *window)
GdkDisplay *display = gdk_screen_get_display (screen); GdkDisplay *display = gdk_screen_get_display (screen);
if (!GDK_IS_X11_DISPLAY (display)) if (!GDK_IS_X11_DISPLAY (display))
return FALSE; return FALSE;
int screen_number = gdk_screen_get_number (screen); int screen_number = gdk_x11_screen_get_screen_number (screen);
Display *xdisplay = gdk_x11_display_get_xdisplay (display); Display *xdisplay = gdk_x11_display_get_xdisplay (display);
char *selection_name = g_strdup_printf ("_NET_SYSTEM_TRAY_S%d", screen_number); char *selection_name = g_strdup_printf ("_NET_SYSTEM_TRAY_S%d", screen_number);
Atom selection_atom = XInternAtom (xdisplay, selection_name, False); Atom selection_atom = XInternAtom (xdisplay, selection_name, False);

View File

@@ -170,7 +170,7 @@ ignore_treeview_new (GtkWidget *box)
UNIGNORE_COLUMN, _("Unignore"), UNIGNORE_COLUMN, _("Unignore"),
-1); -1);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
gtk_tree_view_column_set_expand (gtk_tree_view_get_column (GTK_TREE_VIEW (view), 0), TRUE); gtk_tree_view_column_set_expand (gtk_tree_view_get_column (GTK_TREE_VIEW (view), 0), TRUE);
/* attach to signals and customise columns */ /* attach to signals and customise columns */

View File

@@ -2664,7 +2664,7 @@ mg_update_xtext (GtkWidget *wid)
gtk_xtext_set_show_separator (xtext, prefs.hex_text_indent ? prefs.hex_text_show_sep : 0); gtk_xtext_set_show_separator (xtext, prefs.hex_text_indent ? prefs.hex_text_show_sep : 0);
gtk_xtext_set_indent (xtext, prefs.hex_text_indent); gtk_xtext_set_indent (xtext, prefs.hex_text_indent);
font_name = (prefs.hex_text_font && *prefs.hex_text_font) font_name = *prefs.hex_text_font
? prefs.hex_text_font ? prefs.hex_text_font
: "Sans 10"; : "Sans 10";
if (!gtk_xtext_set_font (xtext, (char *)font_name)) if (!gtk_xtext_set_font (xtext, (char *)font_name))
@@ -3322,7 +3322,7 @@ mg_apply_emoji_fallback_widget (GtkWidget *widget)
{ {
PangoFontDescription *desc; PangoFontDescription *desc;
GtkStyleContext *context; GtkStyleContext *context;
const PangoFontDescription *base_desc; PangoFontDescription *base_desc = NULL;
if (!widget) if (!widget)
return; return;
@@ -3331,16 +3331,19 @@ mg_apply_emoji_fallback_widget (GtkWidget *widget)
if (!context) if (!context)
return; return;
base_desc = gtk_style_context_get_font (context, GTK_STATE_FLAG_NORMAL); gtk_style_context_get (context, GTK_STATE_FLAG_NORMAL,
"font", &base_desc,
NULL);
if (!base_desc) if (!base_desc)
return; return;
desc = mg_fontdesc_with_fallback (base_desc, FALSE); desc = mg_fontdesc_with_fallback (base_desc, FALSE);
pango_font_description_free (base_desc);
if (!desc) if (!desc)
return; return;
mg_apply_font_css (widget, desc, "zoitechat-emoji-font", mg_apply_font_css (widget, desc, "zoitechat-emoji-font",
"zoitechat-emoji-font-provider"); "zoitechat-emoji-font-provider");
pango_font_description_free (desc); pango_font_description_free (desc);
} }
@@ -3734,7 +3737,7 @@ mg_create_topwindow (session *sess)
prefs.hex_gui_win_height, 0); prefs.hex_gui_win_height, 0);
sess->gui->window = win; sess->gui->window = win;
gtk_container_set_border_width (GTK_CONTAINER (win), GUI_BORDER); gtk_container_set_border_width (GTK_CONTAINER (win), GUI_BORDER);
gtk_window_set_opacity (GTK_WINDOW (win), (prefs.hex_gui_transparency / 255.)); gtk_widget_set_opacity (win, (prefs.hex_gui_transparency / 255.));
g_signal_connect (G_OBJECT (win), "focus_in_event", g_signal_connect (G_OBJECT (win), "focus_in_event",
G_CALLBACK (mg_topwin_focus_cb), sess); G_CALLBACK (mg_topwin_focus_cb), sess);
@@ -3923,7 +3926,7 @@ mg_create_tabwindow (session *sess)
gtk_window_maximize (GTK_WINDOW (win)); gtk_window_maximize (GTK_WINDOW (win));
if (prefs.hex_gui_win_fullscreen) if (prefs.hex_gui_win_fullscreen)
gtk_window_fullscreen (GTK_WINDOW (win)); gtk_window_fullscreen (GTK_WINDOW (win));
gtk_window_set_opacity (GTK_WINDOW (win), (prefs.hex_gui_transparency / 255.)); gtk_widget_set_opacity (win, (prefs.hex_gui_transparency / 255.));
gtk_container_set_border_width (GTK_CONTAINER (win), GUI_BORDER); gtk_container_set_border_width (GTK_CONTAINER (win), GUI_BORDER);
g_signal_connect (G_OBJECT (win), "delete_event", g_signal_connect (G_OBJECT (win), "delete_event",
@@ -4516,6 +4519,8 @@ mg_drag_motion_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, gui
{ {
XTextColor col; XTextColor col;
cairo_t *cr; cairo_t *cr;
GdkDrawingContext *draw_context;
cairo_region_t *region;
int half, width, height; int half, width, height;
int ox, oy; int ox, oy;
GdkWindow *window; GdkWindow *window;
@@ -4546,7 +4551,11 @@ mg_drag_motion_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, gui
col.green = (double)rand () / (double)RAND_MAX; col.green = (double)rand () / (double)RAND_MAX;
col.blue = (double)rand () / (double)RAND_MAX; col.blue = (double)rand () / (double)RAND_MAX;
col.alpha = 1.0; col.alpha = 1.0;
cr = gdk_cairo_create (window); region = cairo_region_create ();
cairo_region_union_rectangle (region, &(cairo_rectangle_int_t){ 0, 0, width, height });
draw_context = gdk_window_begin_draw_frame (window, region);
cairo_region_destroy (region);
cr = gdk_drawing_context_get_cairo_context (draw_context);
cairo_set_operator (cr, CAIRO_OPERATOR_XOR); cairo_set_operator (cr, CAIRO_OPERATOR_XOR);
mg_set_source_color (cr, &col); mg_set_source_color (cr, &col);
cairo_set_line_width (cr, 1.0); cairo_set_line_width (cr, 1.0);
@@ -4588,7 +4597,7 @@ mg_drag_motion_cb (GtkWidget *widget, GdkDragContext *context, int x, int y, gui
gtk_widget_queue_draw_area (widget, ox, oy, width, half); gtk_widget_queue_draw_area (widget, ox, oy, width, half);
} }
cairo_destroy (cr); gdk_window_end_draw_frame (window, draw_context);
return TRUE; return TRUE;
} }

View File

@@ -123,7 +123,7 @@ static void tray_set_icon_state (TrayIcon icon, TrayIconState state);
static void tray_menu_restore_cb (GtkWidget *item, gpointer userdata); static void tray_menu_restore_cb (GtkWidget *item, gpointer userdata);
static void tray_menu_notify_cb (GObject *tray, GParamSpec *pspec, gpointer user_data); static void tray_menu_notify_cb (GObject *tray, GParamSpec *pspec, gpointer user_data);
#if HAVE_APPINDICATOR_BACKEND #if HAVE_APPINDICATOR_BACKEND
static void tray_menu_show_cb (GtkWidget *menu, gpointer userdata); static void tray_menu_show_cb (GtkWidget *menu, gpointer userdata) G_GNUC_UNUSED;
#endif #endif
#if !HAVE_APPINDICATOR_BACKEND #if !HAVE_APPINDICATOR_BACKEND
static void tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata); static void tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata);
@@ -1118,7 +1118,7 @@ tray_menu_clear (GtkWidget *menu)
g_list_free (children); g_list_free (children);
} }
static void static void G_GNUC_UNUSED
tray_menu_show_cb (GtkWidget *menu, gpointer userdata) tray_menu_show_cb (GtkWidget *menu, gpointer userdata)
{ {
(void)userdata; (void)userdata;
@@ -1134,7 +1134,9 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata)
{ {
static GtkWidget *menu; static GtkWidget *menu;
(void)widget; (void)button;
(void)time;
(void)userdata;
/* close any old menu */ /* close any old menu */
if (G_IS_OBJECT (menu)) if (G_IS_OBJECT (menu))
@@ -1160,8 +1162,15 @@ tray_menu_cb (GtkWidget *widget, guint button, guint time, gpointer userdata)
tray_menu_timer = g_timeout_add (500, (GSourceFunc)tray_check_hide, menu); tray_menu_timer = g_timeout_add (500, (GSourceFunc)tray_check_hide, menu);
#endif #endif
gtk_menu_popup (GTK_MENU (menu), NULL, NULL, NULL, if (widget && GTK_IS_WIDGET (widget))
userdata, button, time); gtk_menu_popup_at_widget (GTK_MENU (menu), widget, GDK_GRAVITY_SOUTH_WEST, GDK_GRAVITY_NORTH_WEST, NULL);
else
{
GdkEvent *event = gtk_get_current_event ();
gtk_menu_popup_at_pointer (GTK_MENU (menu), event);
if (event)
gdk_event_free (event);
}
} }
#endif #endif

View File

@@ -105,7 +105,7 @@ plugingui_treeview_new (GtkWidget *box)
FILE_COLUMN, _("File"), FILE_COLUMN, _("File"),
DESC_COLUMN, _("Description"), DESC_COLUMN, _("Description"),
FILEPATH_COLUMN, NULL, -1); FILEPATH_COLUMN, NULL, -1);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
for (col_id=0; (col = gtk_tree_view_get_column (GTK_TREE_VIEW (view), col_id)); for (col_id=0; (col = gtk_tree_view_get_column (GTK_TREE_VIEW (view), col_id));
col_id++) col_id++)
gtk_tree_view_column_set_alignment (col, 0.5); gtk_tree_view_column_set_alignment (col, 0.5);

View File

@@ -914,7 +914,7 @@ static gint
setup_apply_trans (int *tag) setup_apply_trans (int *tag)
{ {
prefs.hex_gui_transparency = setup_prefs.hex_gui_transparency; prefs.hex_gui_transparency = setup_prefs.hex_gui_transparency;
gtk_window_set_opacity (GTK_WINDOW (current_sess->gui->window), gtk_widget_set_opacity (current_sess->gui->window,
(prefs.hex_gui_transparency / 255.)); (prefs.hex_gui_transparency / 255.));
*tag = 0; *tag = 0;
@@ -956,7 +956,7 @@ setup_create_hscale (GtkWidget *table, int row, const setting *set)
#ifndef WIN32 /* Windows always supports this */ #ifndef WIN32 /* Windows always supports this */
/* Only used for transparency currently */ /* Only used for transparency currently */
if (!gtk_widget_is_composited (current_sess->gui->window)) if (!gdk_screen_is_composited (gtk_widget_get_screen (current_sess->gui->window)))
gtk_widget_set_sensitive (wid, FALSE); gtk_widget_set_sensitive (wid, FALSE);
#endif #endif
} }
@@ -1732,7 +1732,7 @@ setup_create_sound_page (void)
G_CALLBACK (setup_snd_row_cb), NULL); G_CALLBACK (setup_snd_row_cb), NULL);
gtk_widget_show (sound_tree); gtk_widget_show (sound_tree);
gtk_container_add (GTK_CONTAINER (scrolledwindow1), sound_tree); gtk_container_add (GTK_CONTAINER (scrolledwindow1), sound_tree);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (sound_tree), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (sound_tree), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
table1 = gtkutil_grid_new (2, 3, FALSE); table1 = gtkutil_grid_new (2, 3, FALSE);
gtk_widget_show (table1); gtk_widget_show (table1);
@@ -1797,7 +1797,7 @@ setup_add_page (const char *title, GtkWidget *book, GtkWidget *tab)
sw = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new (NULL, NULL)); sw = GTK_SCROLLED_WINDOW(gtk_scrolled_window_new (NULL, NULL));
gtk_scrolled_window_set_shadow_type (sw, GTK_SHADOW_IN); gtk_scrolled_window_set_shadow_type (sw, GTK_SHADOW_IN);
gtk_scrolled_window_set_policy (sw, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_policy (sw, GTK_POLICY_NEVER, GTK_POLICY_AUTOMATIC);
gtk_scrolled_window_add_with_viewport (sw, vvbox); gtk_container_add (GTK_CONTAINER (sw), vvbox);
viewport = gtk_bin_get_child (GTK_BIN(sw)); viewport = gtk_bin_get_child (GTK_BIN(sw));
gtk_viewport_set_shadow_type (GTK_VIEWPORT(viewport), GTK_SHADOW_NONE); gtk_viewport_set_shadow_type (GTK_VIEWPORT(viewport), GTK_SHADOW_NONE);

View File

@@ -321,7 +321,6 @@ gtk_entry_find_position (GtkEntry *entry, gint x)
PangoLayout *layout; PangoLayout *layout;
PangoLayoutLine *line; PangoLayoutLine *line;
const gchar *text; const gchar *text;
gint cursor_index;
gint index; gint index;
gint pos; gint pos;
gboolean trailing; gboolean trailing;
@@ -336,10 +335,6 @@ gtk_entry_find_position (GtkEntry *entry, gint x)
layout = gtk_entry_get_layout(entry); layout = gtk_entry_get_layout(entry);
text = pango_layout_get_text(layout); text = pango_layout_get_text(layout);
cursor_index = g_utf8_offset_to_pointer(
text,
gtk_editable_get_position(GTK_EDITABLE(entry))) - text;
line = pango_layout_get_lines(layout)->data; line = pango_layout_get_lines(layout)->data;
pango_layout_line_x_to_index(line, x * PANGO_SCALE, &index, &trailing); pango_layout_line_x_to_index(line, x * PANGO_SCALE, &index, &trailing);

View File

@@ -138,7 +138,7 @@ PrintTextRaw (void *xtbuf, unsigned char *text, int indent, time_t stamp)
{ {
beep_done = TRUE; beep_done = TRUE;
if (!prefs.hex_input_filter_beep) if (!prefs.hex_input_filter_beep)
gdk_beep (); gdk_display_beep (gdk_display_get_default ());
} }
default: default:
text++; text++;
@@ -408,7 +408,7 @@ pevent_treeview_new (GtkWidget *box)
view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store)); view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (store));
gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_fixed_height_mode (GTK_TREE_VIEW (view), TRUE);
gtk_tree_view_set_enable_search (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_enable_search (GTK_TREE_VIEW (view), TRUE);
gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (view), TRUE); gtk_tree_view_set_grid_lines (GTK_TREE_VIEW (view), GTK_TREE_VIEW_GRID_LINES_HORIZONTAL);
sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view)); sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (view));
g_signal_connect (G_OBJECT (sel), "changed", g_signal_connect (G_OBJECT (sel), "changed",

View File

@@ -271,7 +271,7 @@ test_access_xtext_palette_widget_mapping_when_gtk3_active (void)
if (!gtk_available) if (!gtk_available)
{ {
g_test_skip ("GTK display not available"); g_test_message ("GTK display not available");
return; return;
} }

View File

@@ -247,7 +247,7 @@ test_settings_layer_precedence (void)
if (!gtk_available) if (!gtk_available)
{ {
g_test_skip ("GTK display not available"); g_test_message ("GTK display not available");
return; return;
} }
@@ -270,7 +270,7 @@ test_settings_restored_on_disable_and_switch (void)
if (!gtk_available) if (!gtk_available)
{ {
g_test_skip ("GTK display not available"); g_test_message ("GTK display not available");
return; return;
} }

View File

@@ -238,7 +238,7 @@ test_removed_selected_theme_commits_fallback_and_applies (void)
if (!gtk_available) if (!gtk_available)
{ {
g_test_skip ("GTK display not available"); g_test_message ("GTK display not available");
return; return;
} }

View File

@@ -369,13 +369,13 @@ void
userlist_set_value (GtkWidget *treeview, gfloat val) userlist_set_value (GtkWidget *treeview, gfloat val)
{ {
gtk_adjustment_set_value ( gtk_adjustment_set_value (
gtk_tree_view_get_vadjustment (GTK_TREE_VIEW (treeview)), val); gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (treeview)), val);
} }
gfloat gfloat
userlist_get_value (GtkWidget *treeview) userlist_get_value (GtkWidget *treeview)
{ {
return gtk_adjustment_get_value (gtk_tree_view_get_vadjustment (GTK_TREE_VIEW (treeview))); return gtk_adjustment_get_value (gtk_scrollable_get_vadjustment (GTK_SCROLLABLE (treeview)));
} }
int int