* BUG: e often forgets what window is focused so ctrl+alt+x for example doesnt
close the current focused window... hmmmm
-* e_hints.c manually changes flags on a border instead of calling
- e_border_stick() for example or the calls in e_border.c - add calls as needed
- to e_border.c. before calling check the lock flags too.
* BUG: in general fullscreen needs work, cleaning and testing. dont allow
desktop switches for the desk a fullscreened window is on, nor allow windows
to be raised above the fs win etc. ie the app must seem to be entirely fs for
*/
#include "e.h"
-#define INOUTDEBUG_MOUSE 1
-#define INOUTDEBUG_FOCUS 1
+//#define INOUTDEBUG_MOUSE 1
+//#define INOUTDEBUG_FOCUS 1
/* These are compatible with netwm */
#define RESIZE_TL 0
{
E_OBJECT_CHECK(bd);
E_OBJECT_TYPE_CHECK(bd, E_BORDER_TYPE);
- printf("e_border_focus_set(%p, %i %i);\n", bd, focus, set);
+ //printf("e_border_focus_set(%p, %i %i);\n", bd, focus, set);
if ((bd->visible) && (bd->changes.visible))
{
if ((bd->want_focus) && (set) && (!focus))
if (bd->focused)
{
focused = bd;
- printf("set focused to %p\n", focused);
+ //printf("set focused to %p\n", focused);
}
else if ((!bd->focused) && (focused == bd))
{
focused = NULL;
- printf("set focused to %p\n", focused);
+ //printf("set focused to %p\n", focused);
}
}
e_border_iconify(bd);
break;
case ECORE_X_WINDOW_STATE_MODAL:
- changed = 0;
switch (action)
{
case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
if (bd->client.netwm.state.modal)
{
bd->client.netwm.state.modal = 0;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
}
break;
case ECORE_X_WINDOW_STATE_ACTION_ADD:
if (!bd->client.netwm.state.modal)
{
bd->client.netwm.state.modal = 1;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
}
break;
case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
bd->client.netwm.state.modal = !bd->client.netwm.state.modal;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
break;
}
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- }
break;
case ECORE_X_WINDOW_STATE_STICKY:
if (bd->lock_client_sticky) return;
break;
case ECORE_X_WINDOW_STATE_MAXIMIZED_VERT:
if (bd->lock_client_maximize) return;
+ /* We might end up in a state where maximized_h or maximized_v is
+ * set. This doesn't matter, because E only checks if both are
+ * set for maximization.
+ */
changed = 0;
switch (action)
{
break;
case ECORE_X_WINDOW_STATE_MAXIMIZED_HORZ:
if (bd->lock_client_maximize) return;
+ /* We might end up in a state where maximized_h or maximized_v is
+ * set. This doesn't matter, because E only checks if both are
+ * set for maximization.
+ */
changed = 0;
switch (action)
{
}
break;
case ECORE_X_WINDOW_STATE_SKIP_TASKBAR:
- changed = 0;
switch (action)
{
case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
if (bd->client.netwm.state.skip_taskbar)
{
bd->client.netwm.state.skip_taskbar = 0;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
}
break;
case ECORE_X_WINDOW_STATE_ACTION_ADD:
if (!bd->client.netwm.state.skip_taskbar)
{
bd->client.netwm.state.skip_taskbar = 1;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
}
break;
case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
bd->client.netwm.state.skip_taskbar = !bd->client.netwm.state.skip_taskbar;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
break;
}
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- }
break;
case ECORE_X_WINDOW_STATE_SKIP_PAGER:
- changed = 0;
switch (action)
{
case ECORE_X_WINDOW_STATE_ACTION_REMOVE:
if (bd->client.netwm.state.skip_pager)
{
bd->client.netwm.state.skip_pager = 0;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
}
break;
case ECORE_X_WINDOW_STATE_ACTION_ADD:
if (!bd->client.netwm.state.skip_pager)
{
bd->client.netwm.state.skip_pager = 1;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
}
break;
case ECORE_X_WINDOW_STATE_ACTION_TOGGLE:
bd->client.netwm.state.skip_pager = !bd->client.netwm.state.skip_pager;
- changed = 1;
+ bd->client.netwm.update.state = 1;
+ bd->changed = 1;
break;
}
- if (changed)
- {
- bd->client.netwm.update.state = 1;
- bd->changed = 1;
- }
break;
case ECORE_X_WINDOW_STATE_HIDDEN:
/* Ignore */