Cleanup GTK_CHECK_VERSION and unify gtk+2/3 code where possible

Always use gdk_window_get_display and GDK_WINDOW_XID
Replace GtkObject with GObject
Always use gtk_message_dialog_get_message_area (since gtk 2.22)
Unify notebook code between gtk2 and gtk3
master-1.22
infirit 2014-05-20 12:45:42 +02:00
parent 0b75b3c4b4
commit 50ac67e11f
4 changed files with 9 additions and 71 deletions

View File

@ -51,7 +51,6 @@
#if GTK_CHECK_VERSION(3, 0, 0)
#include <gdk/gdkkeysyms-compat.h>
#define GDK_WINDOW_XWINDOW GDK_WINDOW_XID
#endif
#define URL_MATCH_CURSOR (GDK_HAND2)
@ -1413,7 +1412,7 @@ get_child_environment (TerminalScreen *screen,
/* FIXME: moving the tab between windows, or the window between displays will make the next two invalid... */
if (GDK_IS_X11_DISPLAY(display))
{
g_hash_table_replace (env_table, g_strdup ("WINDOWID"), g_strdup_printf ("%ld", GDK_WINDOW_XWINDOW (gtk_widget_get_window (window))));
g_hash_table_replace (env_table, g_strdup ("WINDOWID"), g_strdup_printf ("%ld", GDK_WINDOW_XID (gtk_widget_get_window (window))));
g_hash_table_replace (env_table, g_strdup ("DISPLAY"), g_strdup (gdk_display_get_name (display)));
}
#endif

View File

@ -265,11 +265,7 @@ notebook_page_reordered_cb (GtkNotebook *notebook,
static void
notebook_page_switch_cb (GtkNotebook *notebook,
#if GTK_CHECK_VERSION (2, 90, 6)
GtkWidget *page,
#else
gpointer page,
#endif
guint position,
TerminalTabsMenu *menu)
{
@ -277,11 +273,7 @@ notebook_page_switch_cb (GtkNotebook *notebook,
TerminalScreen *screen;
GtkAction *action;
#if GTK_CHECK_VERSION (2, 90, 6)
container = TERMINAL_SCREEN_CONTAINER (page);
#else
container = TERMINAL_SCREEN_CONTAINER (gtk_notebook_get_nth_page (notebook, position));
#endif
screen = terminal_screen_container_get_screen (container);
action = g_object_get_data (G_OBJECT (screen), DATA_KEY);

View File

@ -45,10 +45,7 @@
#include "terminal-util.h"
#include "terminal-window.h"
#if GTK_CHECK_VERSION(3, 0, 0)
#define GDK_WINDOW_XWINDOW GDK_WINDOW_XID
#define GDK_DRAWABLE_XID GDK_WINDOW_XID
#else
#if !GTK_CHECK_VERSION(3, 0, 0)
#define gdk_error_trap_pop_ignored gdk_error_trap_pop
#endif
@ -1027,11 +1024,7 @@ gboolean
terminal_util_x11_get_net_wm_desktop (GdkWindow *window,
guint32 *desktop)
{
#if GTK_CHECK_VERSION(3, 0, 0)
GdkDisplay *display = gdk_window_get_display (window);
#else
GdkDisplay *display = gdk_drawable_get_display (window);
#endif
Atom type;
int format;
guchar *data;
@ -1039,7 +1032,7 @@ terminal_util_x11_get_net_wm_desktop (GdkWindow *window,
gboolean result = FALSE;
if (XGetWindowProperty (GDK_DISPLAY_XDISPLAY (display),
GDK_DRAWABLE_XID (window),
GDK_WINDOW_XID (window),
gdk_x11_get_xatom_by_name_for_display (display,
"_NET_WM_DESKTOP"),
0, G_MAXLONG, False, AnyPropertyType,
@ -1074,11 +1067,7 @@ terminal_util_x11_set_net_wm_desktop (GdkWindow *window,
* http://bugzilla.mate.org/show_bug.cgi?id=586311 asks for GTK+
* to just handle everything behind the scenes including the desktop.
*/
#if GTK_CHECK_VERSION(3, 0, 0)
GdkScreen *screen = gdk_window_get_screen (window);
#else
GdkScreen *screen = gdk_drawable_get_screen (window);
#endif
GdkDisplay *display = gdk_screen_get_display (screen);
Display *xdisplay = GDK_DISPLAY_XDISPLAY (display);
char *wm_selection_name;
@ -1103,7 +1092,7 @@ terminal_util_x11_set_net_wm_desktop (GdkWindow *window,
xclient.type = ClientMessage;
xclient.serial = 0;
xclient.send_event = True;
xclient.window = GDK_WINDOW_XWINDOW (window);
xclient.window = GDK_WINDOW_XID (window);
xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_DESKTOP");
xclient.format = 32;
@ -1114,7 +1103,7 @@ terminal_util_x11_set_net_wm_desktop (GdkWindow *window,
xclient.data.l[4] = 0;
XSendEvent (xdisplay,
GDK_WINDOW_XWINDOW (gdk_screen_get_root_window (screen)),
GDK_WINDOW_XID (gdk_screen_get_root_window (screen)),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
(XEvent *)&xclient);
@ -1124,7 +1113,7 @@ terminal_util_x11_set_net_wm_desktop (GdkWindow *window,
gulong long_desktop = desktop;
XChangeProperty (xdisplay,
GDK_DRAWABLE_XID (window),
GDK_WINDOW_XID (window),
gdk_x11_get_xatom_by_name_for_display (display,
"_NET_WM_DESKTOP"),
XA_CARDINAL, 32, PropModeReplace,
@ -1145,11 +1134,7 @@ void
terminal_util_x11_clear_demands_attention (GdkWindow *window)
{
#if GTK_CHECK_VERSION(3, 0, 0)
GdkScreen *screen = gdk_window_get_screen (window);
#else
GdkScreen *screen = gdk_drawable_get_screen (window);
#endif
GdkDisplay *display = gdk_screen_get_display (screen);
XClientMessageEvent xclient;
@ -1157,7 +1142,7 @@ terminal_util_x11_clear_demands_attention (GdkWindow *window)
xclient.type = ClientMessage;
xclient.serial = 0;
xclient.send_event = True;
xclient.window = GDK_WINDOW_XWINDOW (window);
xclient.window = GDK_WINDOW_XID (window);
xclient.message_type = gdk_x11_get_xatom_by_name_for_display (display, "_NET_WM_STATE");
xclient.format = 32;
@ -1168,7 +1153,7 @@ terminal_util_x11_clear_demands_attention (GdkWindow *window)
xclient.data.l[4] = 0;
XSendEvent (GDK_DISPLAY_XDISPLAY (display),
GDK_WINDOW_XWINDOW (gdk_screen_get_root_window (screen)),
GDK_WINDOW_XID (gdk_screen_get_root_window (screen)),
False,
SubstructureRedirectMask | SubstructureNotifyMask,
(XEvent *)&xclient);
@ -1186,11 +1171,7 @@ terminal_util_x11_clear_demands_attention (GdkWindow *window)
gboolean
terminal_util_x11_window_is_minimized (GdkWindow *window)
{
#if GTK_CHECK_VERSION(3, 0, 0)
GdkDisplay *display = gdk_window_get_display (window);
#else
GdkDisplay *display = gdk_drawable_get_display (window);
#endif
Atom type;
gint format;

View File

@ -152,11 +152,7 @@ static gboolean notebook_button_press_cb (GtkWidget *notebook,
static gboolean notebook_popup_menu_cb (GtkWidget *notebook,
TerminalWindow *window);
static void notebook_page_selected_callback (GtkWidget *notebook,
#if GTK_CHECK_VERSION (2, 90, 6)
GtkWidget *page,
#else
gpointer page,
#endif
guint page_num,
TerminalWindow *window);
static void notebook_page_added_callback (GtkWidget *notebook,
@ -2167,11 +2163,7 @@ terminal_window_init (TerminalWindow *window)
gtk_notebook_set_scrollable (GTK_NOTEBOOK (priv->notebook), TRUE);
gtk_notebook_set_show_border (GTK_NOTEBOOK (priv->notebook), FALSE);
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (priv->notebook), FALSE);
#if GTK_CHECK_VERSION (3, 0, 0)
gtk_notebook_set_group_name (GTK_NOTEBOOK (priv->notebook), I_("mate-terminal-window"));
#else
gtk_notebook_set_group (GTK_NOTEBOOK (priv->notebook), GUINT_TO_POINTER (1));
#endif
gtk_notebook_set_scrollable (GTK_NOTEBOOK (priv->notebook),
TRUE);
g_signal_connect (priv->notebook, "button-press-event",
@ -2188,10 +2180,8 @@ terminal_window_init (TerminalWindow *window)
G_CALLBACK (terminal_window_update_tabs_menu_sensitivity),
window, NULL, G_CONNECT_SWAPPED | G_CONNECT_AFTER);
#if GTK_CHECK_VERSION(3, 0, 0)
g_signal_connect (priv->notebook, "create-window",
G_CALLBACK (handle_tab_droped_on_desktop), window);
#endif
gtk_box_pack_end (GTK_BOX (main_vbox), priv->notebook, TRUE, TRUE, 0);
gtk_widget_show (priv->notebook);
@ -2306,9 +2296,6 @@ terminal_window_class_init (TerminalWindowClass *klass)
"}\n"
"widget \"*.mate-terminal-tab-close-button\" style \"mate-terminal-tab-close-button-style\"");
#if !GTK_CHECK_VERSION(3, 0, 0)
gtk_notebook_set_window_creation_hook (handle_tab_droped_on_desktop, NULL, NULL);
#endif
}
static void
@ -2900,11 +2887,7 @@ notebook_popup_menu_cb (GtkWidget *widget,
static void
notebook_page_selected_callback (GtkWidget *notebook,
#if GTK_CHECK_VERSION (2, 90, 6)
GtkWidget *page_widget,
#else
gpointer useless_crap,
#endif
guint page_num,
TerminalWindow *window)
{
@ -2912,9 +2895,6 @@ notebook_page_selected_callback (GtkWidget *notebook,
GtkWidget *widget;
TerminalScreen *screen;
int old_grid_width, old_grid_height;
#if !GTK_CHECK_VERSION (2, 90, 6)
GtkWidget *page_widget;
#endif
_terminal_debug_print (TERMINAL_DEBUG_MDI,
"[window %p] MDI: page-selected %d\n",
@ -2923,10 +2903,6 @@ notebook_page_selected_callback (GtkWidget *notebook,
if (priv->disposed)
return;
#if !GTK_CHECK_VERSION (2, 90, 6)
page_widget = gtk_notebook_get_nth_page (GTK_NOTEBOOK (notebook), page_num);
#endif
screen = terminal_screen_container_get_screen (TERMINAL_SCREEN_CONTAINER (page_widget));
widget = GTK_WIDGET (screen);
g_assert (screen != NULL);
@ -3970,14 +3946,8 @@ terminal_set_title_callback (GtkAction *action,
g_signal_connect (dialog, "delete-event",
G_CALLBACK (terminal_util_dialog_response_on_delete), NULL);
#if GTK_CHECK_VERSION (2, 90, 6)
message_area = gtk_message_dialog_get_message_area (GTK_MESSAGE_DIALOG (dialog));
gtk_container_foreach (GTK_CONTAINER (message_area), (GtkCallback) gtk_widget_hide, NULL);
#else
label = GTK_MESSAGE_DIALOG (dialog)->label;
gtk_widget_hide (label);
message_area = gtk_widget_get_parent (label);
#endif
hbox = gtk_hbox_new (FALSE, 12);
gtk_box_pack_start (GTK_BOX (message_area), hbox, FALSE, FALSE, 0);
@ -4056,11 +4026,7 @@ tabs_next_or_previous_tab_cb (GtkAction *action,
gtk_binding_set_activate (gtk_binding_set_by_class (klass),
keyval,
GDK_CONTROL_MASK,
#if GTK_CHECK_VERSION(3, 0, 0)
G_OBJECT (priv->notebook));
#else
GTK_OBJECT (priv->notebook));
#endif
}
static void