[maemo-commits] [maemo-commits] r9825 - in projects/haf/branches/maemo-af-desktop/hildon-desktop: . libhildonwm src
From: subversion at stage.maemo.org subversion at stage.maemo.orgDate: Tue Feb 13 16:22:58 EET 2007
- Previous message: [maemo-commits] r9824 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r9826 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
Author: moimart
Date: 2007-02-13 16:22:57 +0200 (Tue, 13 Feb 2007)
New Revision: 9825
Modified:
projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c
projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window-dialog.c
Log:
* src/hd-panel-window-dialog.c:
- Connected to fullscreen libhildonwm's signal
* libhildonwm/hd-wm.c:
- Added fullscreen signal.
- Added checking of fullscreen for specific watched window.
* ChangeLog updated.
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-02-13 13:40:23 UTC (rev 9824)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/ChangeLog 2007-02-13 14:22:57 UTC (rev 9825)
@@ -1,5 +1,13 @@
2007-02-13 Moises Martinez <moises.martinez at nokia.com>
+ * src/hd-panel-window-dialog.c:
+ - Connected to fullscreen libhildonwm's signal
+ * libhildonwm/hd-wm.c:
+ - Added fullscreen signal.
+ - Added checking of fullscreen for specific watched window.
+
+2007-02-13 Moises Martinez <moises.martinez at nokia.com>
+
* libhildondesktop/statusbar-item-socket.c:
* libhildondesktop/hildon-desktop-panel-expandable.c:
- Use gdk_window_set_back_pixmap for getting the proper background.
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c 2007-02-13 13:40:23 UTC (rev 9824)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/libhildonwm/hd-wm.c 2007-02-13 14:22:57 UTC (rev 9825)
@@ -114,6 +114,7 @@
HDWM_WORK_AREA_CHANGED_SIGNAL,
HDWM_SHOW_A_MENU_SIGNAL,
HDWM_APPLICATION_STARTING_SIGNAL,
+ HDWM_FULLSCREEN,
HDWM_SIGNALS
};
@@ -147,6 +148,9 @@
static gboolean
hd_wm_relaunch_timeout (gpointer data);
+ static void
+hd_wm_check_net_state (HDWM *hdwm, HDWMWatchedWindow *win);
+
struct xwinv
{
Window *wins;
@@ -715,6 +719,17 @@
1,
G_TYPE_STRING);
+ hdwm_signals[HDWM_FULLSCREEN] =
+ g_signal_new("fullscreen",
+ G_OBJECT_CLASS_TYPE(object_class),
+ G_SIGNAL_RUN_LAST,
+ G_STRUCT_OFFSET (HDWMClass,show_menu),
+ NULL, NULL,
+ g_cclosure_marshal_VOID__BOOLEAN,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_BOOLEAN);
+
}
static void hd_wm_register_object_path (HDWM *hdwm,
@@ -1215,6 +1230,8 @@
const gchar * service = hd_wm_watchable_app_get_service (app);
hd_wm_top_service (service);
+
+ hd_wm_check_net_state (hdwm,hdwm->priv->last_active_window);
}
else
hd_wm_top_desktop ();
@@ -1252,6 +1269,8 @@
* this breaks the AS menu focus.
*/
hdwm->priv->active_window = NULL;
+
+ g_signal_emit_by_name (hdwm, "fullscreen", FALSE);
}
@@ -2097,6 +2116,44 @@
return FALSE;
}
+static void
+hd_wm_check_net_state (HDWM *hdwm, HDWMWatchedWindow *win)
+{
+ Window xid = hd_wm_watched_window_get_x_win (win);
+ unsigned long n;
+ unsigned long extra;
+ int format, status, i;
+ Atom realType, *value = NULL;
+
+ status = XGetWindowProperty(GDK_DISPLAY (), xid,
+ hdwm->priv->atoms[HD_ATOM_NET_WM_STATE],
+ 0L, 1000000L,
+ 0, XA_ATOM, &realType, &format,
+ &n, &extra, (unsigned char **) &value);
+
+ if (status == Success)
+ {
+ if (realType == XA_ATOM && format == 32 && n > 0)
+ {
+ for (i=0; i < n; i++)
+ if (value[i] && value[i] == hdwm->priv->atoms[HD_ATOM_NET_WM_STATE_FULLSCREEN])
+ {
+ if (value) XFree(value);
+ g_signal_emit_by_name (hdwm,"fullscreen",TRUE);
+ g_debug ("FULLSCREEN ON %d",(GdkNativeWindow)xid);
+ return;
+ }
+ }
+ }
+
+ if (value)
+ XFree(value);
+
+ g_signal_emit_by_name (hdwm,"fullscreen",FALSE);
+ g_debug ("FULLSCREEN OFF");
+
+}
+
/* Main event filter */
static GdkFilterReturn
@@ -2273,6 +2330,9 @@
if (!win)
return GDK_FILTER_CONTINUE;
+ if (prop->atom == hdwm->priv->atoms[HD_ATOM_NET_WM_STATE])
+ hd_wm_check_net_state (hdwm, win);
+ else
if (prop->atom == hdwm->priv->atoms[HD_ATOM_WM_NAME] ||
prop->atom == hdwm->priv->atoms[HD_ATOM_MB_WIN_SUB_NAME] ||
prop->atom == hdwm->priv->atoms[HD_ATOM_NET_WM_NAME])
Modified: projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window-dialog.c
===================================================================
--- projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window-dialog.c 2007-02-13 13:40:23 UTC (rev 9824)
+++ projects/haf/branches/maemo-af-desktop/hildon-desktop/src/hd-panel-window-dialog.c 2007-02-13 14:22:57 UTC (rev 9825)
@@ -31,6 +31,7 @@
#include <gtk/gtk.h>
#include <libhildondesktop/hildon-desktop-panel-expandable.h>
+#include <libhildonwm/hd-wm.h>
#include "hd-panel-window-dialog.h"
#define HD_PANEL_WINDOW_DIALOG_GET_PRIVATE(obj) \
@@ -92,6 +93,17 @@
gtk_widget_set_name (GTK_BIN (widget)->child, HD_PANEL_WINDOW_DIALOG_BUTTON_NAME);
}
+static void
+hd_panel_window_dialog_fullscreen (HDWM *hdwm, gboolean fullscreen, gpointer _data)
+{
+ GtkWidget *window = GTK_WIDGET (_data);
+
+ if (!fullscreen)
+ gtk_widget_show (window);
+ else
+ gtk_widget_hide (window);
+}
+
static GObject *
hd_panel_window_dialog_constructor (GType gtype,
guint n_params,
@@ -101,6 +113,8 @@
#ifdef HD_PANEL_WINDOW_DIALOG_NEW_THEME
HildonDesktopPanelWindowOrientation orientation;
#endif
+
+ HDWM *hdwm = hd_wm_get_singleton ();
object = G_OBJECT_CLASS (hd_panel_window_dialog_parent_class)->constructor (gtype,
n_params,
@@ -111,6 +125,11 @@
G_CALLBACK (hd_panel_window_dialog_cadd),
NULL);
+ g_signal_connect (G_OBJECT (hdwm),
+ "fullscreen",
+ G_CALLBACK (hd_panel_window_dialog_fullscreen),
+ (gpointer)object);
+
#ifdef HD_PANEL_WINDOW_DIALOG_NEW_THEME
g_object_get (G_OBJECT (object),
"orientation", &orientation,
- Previous message: [maemo-commits] r9824 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Next message: [maemo-commits] r9826 - in projects/haf/branches/gtk+/maemo-gtk-2-10: . gtk
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
