]> git.0d.be Git - empathy.git/commitdiff
Stop dealing with iconification of main window, just hide/present it
authorXavier Claessens <xclaesse@gmail.com>
Thu, 26 May 2011 10:00:58 +0000 (12:00 +0200)
committerXavier Claessens <xclaesse@gmail.com>
Thu, 26 May 2011 10:49:48 +0000 (12:49 +0200)
It does not work with gnome-shell, unity and indicators anyway,
so it is just complex code for no benefit anymore.

libempathy-gtk/empathy-ui-utils.c
libempathy-gtk/empathy-ui-utils.h
src/empathy-status-icon.c

index cc829a8941a33a154e21faf85874d256c0994c3e..a1bd50f1a185832db555fde01e2e3d2f5c586ae8 100644 (file)
@@ -1532,56 +1532,6 @@ empathy_text_iter_backward_search (const GtkTextIter   *iter,
        return retval;
 }
 
-gboolean
-empathy_window_get_is_visible (GtkWindow *window)
-{
-       GdkWindowState  state;
-       GdkWindow      *gdk_window;
-
-       g_return_val_if_fail (GTK_IS_WINDOW (window), FALSE);
-
-       gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
-       if (!gdk_window) {
-               return FALSE;
-       }
-
-       state = gdk_window_get_state (gdk_window);
-       if (state & (GDK_WINDOW_STATE_WITHDRAWN | GDK_WINDOW_STATE_ICONIFIED)) {
-               return FALSE;
-       }
-
-       return TRUE;
-}
-
-void
-empathy_window_iconify (GtkWindow *window, GtkStatusIcon *status_icon)
-{
-       GdkRectangle  icon_location;
-       gulong        data[4];
-       Display      *dpy;
-       GdkWindow    *gdk_window;
-
-       gtk_status_icon_get_geometry (status_icon, NULL, &icon_location, NULL);
-       gdk_window = gtk_widget_get_window (GTK_WIDGET (window));
-       dpy = GDK_WINDOW_XDISPLAY (gdk_window);
-
-       data[0] = icon_location.x;
-       data[1] = icon_location.y;
-       data[2] = icon_location.width;
-       data[3] = icon_location.height;
-
-       XChangeProperty (dpy,
-                        GDK_WINDOW_XID (gdk_window),
-                        gdk_x11_get_xatom_by_name_for_display (
-                               gdk_window_get_display (gdk_window),
-                        "_NET_WM_ICON_GEOMETRY"),
-                        XA_CARDINAL, 32, PropModeReplace,
-                        (guchar *)&data, 4);
-
-       gtk_window_set_skip_taskbar_hint (window, TRUE);
-       gtk_window_iconify (window);
-}
-
 /* Takes care of moving the window to the current workspace. */
 void
 empathy_window_present_with_time (GtkWindow *window,
@@ -1613,9 +1563,6 @@ empathy_window_present_with_time (GtkWindow *window,
                gtk_window_present (window);
        else
                gtk_window_present_with_time (window, timestamp);
-
-       gtk_window_set_skip_taskbar_hint (window, FALSE);
-       gtk_window_deiconify (window);
 }
 
 void
index d33b8c987b8775d4257a4eccbf76b1adc413be45..af484012cef2c91bc18b53843a6aa95638cc99c7 100644 (file)
@@ -121,12 +121,9 @@ gboolean    empathy_text_iter_backward_search           (const GtkTextIter*iter,
                                                         GtkTextIter      *match_end,
                                                         const GtkTextIter*limit);
 /* Windows */
-gboolean    empathy_window_get_is_visible               (GtkWindow        *window);
 void        empathy_window_present                      (GtkWindow *window);
 void        empathy_window_present_with_time            (GtkWindow        *window,
                                                         guint32 timestamp);
-void        empathy_window_iconify                      (GtkWindow        *window,
-                                                        GtkStatusIcon    *status_icon);
 GtkWindow * empathy_get_toplevel_window                 (GtkWidget        *widget);
 
 /* URL */
index 38a68d43320bb1bf8cea1827a7599530cb43e51a..008ea47014d5aba9e130a36dd5cd5d884022a3d0 100644 (file)
@@ -62,7 +62,7 @@ typedef struct {
        EmpathyEvent        *event;
        GSettings           *gsettings_ui;
 
-       GtkWindow           *window;
+       GtkWidget           *window;
        GtkUIManager        *ui_manager;
        GtkWidget           *popup_menu;
        GtkAction           *show_window_item;
@@ -222,7 +222,7 @@ status_icon_set_visibility (EmpathyStatusIcon *icon,
        }
 
        if (!visible) {
-               empathy_window_iconify (priv->window, priv->icon);
+               gtk_widget_hide (priv->window);
        } else {
                empathy_window_present (GTK_WINDOW (priv->window));
        }
@@ -246,7 +246,7 @@ status_icon_toggle_visibility (EmpathyStatusIcon *icon)
        EmpathyStatusIconPriv *priv = GET_PRIV (icon);
        gboolean               visible;
 
-       visible = gtk_window_is_active (priv->window);
+       visible = gtk_window_is_active (GTK_WINDOW (priv->window));
        status_icon_set_visibility (icon, !visible, TRUE);
 }
 
@@ -334,7 +334,7 @@ status_icon_popup_menu_cb (GtkStatusIcon     *status_icon,
        GtkWidget             *submenu;
        gboolean               show;
 
-       show = empathy_window_get_is_visible (GTK_WINDOW (priv->window));
+       show = gtk_widget_get_visible (priv->window);
 
        g_signal_handlers_block_by_func (priv->show_window_item,
                                         status_icon_show_hide_window_cb,