Enlightenment CVS committal
Author : raster
Project : e17
Module : apps/e
Dir : e17/apps/e/src/bin
Modified Files:
e_border.c e_border.h e_hints.c e_hints.h
Log Message:
support qtopia hint flags and also multiple netwm types
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.c,v
retrieving revision 1.628
retrieving revision 1.629
diff -u -3 -r1.628 -r1.629
--- e_border.c 7 Mar 2008 10:35:57 -0000 1.628
+++ e_border.c 7 Mar 2008 11:51:31 -0000 1.629
@@ -419,6 +419,14 @@
bd->client.e.fetch.state = 1;
}
}
+ /* loop to check for qtopia atoms */
+ for (i = 0; i < at_num; i++)
+ {
+ if (atoms[i] == _QTOPIA_SOFT_MENU)
+ bd->client.qtopia.fetch.soft_menu = 1;
+ else if (atoms[i] == _QTOPIA_SOFT_MENUS)
+ bd->client.qtopia.fetch.soft_menus = 1;
+ }
free(atoms);
}
}
@@ -3973,6 +3981,16 @@
bd->client.netwm.fetch.icon = 1;
bd->changed = 1;
}
+ else if (e->atom == _QTOPIA_SOFT_MENU)
+ {
+ bd->client.qtopia.fetch.soft_menu = 1;
+ bd->changed = 1;
+ }
+ else if (e->atom == _QTOPIA_SOFT_MENUS)
+ {
+ bd->client.qtopia.fetch.soft_menus = 1;
+ bd->changed = 1;
+ }
/*
else if (e->atom == ECORE_X_ATOM_NET_WM_USER_TIME)
{
@@ -5454,6 +5472,18 @@
}
bd->client.netwm.fetch.strut = 0;
}
+ if (bd->client.qtopia.fetch.soft_menu)
+ {
+ e_hints_window_qtopia_soft_menu_get(bd);
+ bd->client.qtopia.fetch.soft_menu = 0;
+ rem_change = 1;
+ }
+ if (bd->client.qtopia.fetch.soft_menus)
+ {
+ e_hints_window_qtopia_soft_menus_get(bd);
+ bd->client.qtopia.fetch.soft_menus = 0;
+ rem_change = 1;
+ }
if (bd->changes.shape)
{
Ecore_X_Rectangle *rects;
@@ -6842,6 +6872,7 @@
e_object_ref(E_OBJECT(bd));
ecore_event_add(E_EVENT_BORDER_PROPERTY, event,
_e_border_event_border_property_free, NULL);
}
+ _e_border_hook_call(E_BORDER_HOOK_EVAL_END, bd);
}
static void
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_border.h,v
retrieving revision 1.170
retrieving revision 1.171
diff -u -3 -r1.170 -r1.171
--- e_border.h 7 Mar 2008 10:35:58 -0000 1.170
+++ e_border.h 7 Mar 2008 11:51:31 -0000 1.171
@@ -86,6 +86,7 @@
E_BORDER_HOOK_EVAL_POST_BORDER_ASSIGN,
E_BORDER_HOOK_EVAL_PRE_NEW_BORDER,
E_BORDER_HOOK_EVAL_POST_NEW_BORDER,
+ E_BORDER_HOOK_EVAL_END,
} E_Border_Hook_Point;
typedef struct _E_Border E_Border;
@@ -336,6 +337,16 @@
unsigned char state : 1;
} fetch;
} e;
+
+ struct {
+ struct {
+ unsigned char soft_menu : 1;
+ unsigned char soft_menus : 1;
+ } fetch;
+
+ unsigned char soft_menu : 1;
+ unsigned char soft_menus : 1;
+ } qtopia;
Ecore_X_Window_Attributes initial_attributes;
} client;
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_hints.c,v
retrieving revision 1.95
retrieving revision 1.96
diff -u -3 -r1.95 -r1.96
--- e_hints.c 7 Mar 2008 10:35:58 -0000 1.95
+++ e_hints.c 7 Mar 2008 11:51:31 -0000 1.96
@@ -3,12 +3,17 @@
*/
#include "e.h"
+Ecore_X_Atom _QTOPIA_SOFT_MENU = 0;
+Ecore_X_Atom _QTOPIA_SOFT_MENUS = 0;
+
EAPI void
e_hints_init(void)
{
Ecore_X_Window *roots = NULL;
int num;
+ _QTOPIA_SOFT_MENU = ecore_x_atom_get("_QTOPIA_SOFT_MENU");
+ _QTOPIA_SOFT_MENUS = ecore_x_atom_get("_QTOPIA_SOFT_MENUS");
roots = ecore_x_window_root_list(&num);
if (roots)
{
@@ -1335,6 +1340,28 @@
}
EAPI void
+e_hints_window_qtopia_soft_menu_get(E_Border *bd)
+{
+ int val;
+
+ if (ecore_x_window_prop_card32_get(bd->client.win, _QTOPIA_SOFT_MENU, &val,
1))
+ bd->client.qtopia.soft_menu = val;
+ else
+ bd->client.qtopia.soft_menu = 0;
+}
+
+EAPI void
+e_hints_window_qtopia_soft_menus_get(E_Border *bd)
+{
+ int val;
+
+ if (ecore_x_window_prop_card32_get(bd->client.win, _QTOPIA_SOFT_MENUS,
&val, 1))
+ bd->client.qtopia.soft_menus = val;
+ else
+ bd->client.qtopia.soft_menus = 0;
+}
+
+EAPI void
e_hints_openoffice_gnome_fake(Ecore_X_Window root)
{
Ecore_X_Atom gnome_atom, string_atom;
@@ -1354,3 +1381,4 @@
win2 = ecore_x_window_new(root, -20, -20, 1, 1);
ecore_x_netwm_wm_identify(root, win2, "KWin");
}
+
===================================================================
RCS file: /cvs/e/e17/apps/e/src/bin/e_hints.h,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -3 -r1.23 -r1.24
--- e_hints.h 7 Jun 2006 21:42:13 -0000 1.23
+++ e_hints.h 7 Mar 2008 11:51:31 -0000 1.24
@@ -45,8 +45,14 @@
EAPI void e_hints_window_e_state_set(E_Border *bd);
EAPI void e_hints_window_e_state_get(E_Border *bd);
+EAPI void e_hints_window_qtopia_soft_menu_get(E_Border *bd);
+EAPI void e_hints_window_qtopia_soft_menus_get(E_Border *bd);
+
EAPI void e_hints_openoffice_gnome_fake(Ecore_X_Window root);
EAPI void e_hints_openoffice_kde_fake(Ecore_X_Window root);
-
+
+extern EAPI Ecore_X_Atom _QTOPIA_SOFT_MENU;
+extern EAPI Ecore_X_Atom _QTOPIA_SOFT_MENUS;
+
#endif
#endif
-------------------------------------------------------------------------
This SF.net email is sponsored by: Microsoft
Defy all challenges. Microsoft(R) Visual Studio 2008.
http://clk.atdmt.com/MRT/go/vse0120000070mrt/direct/01/
_______________________________________________
enlightenment-cvs mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/enlightenment-cvs