parent
86b74f635a
commit
9f01af5e1d
3
TODO
3
TODO
|
@ -10,9 +10,6 @@ Some of the things (in very short form) that need to be done to E17...
|
|||
|
||||
* 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
|
||||
|
|
|
@ -3,8 +3,8 @@
|
|||
*/
|
||||
#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
|
||||
|
@ -863,7 +863,7 @@ e_border_focus_set(E_Border *bd, int focus, int set)
|
|||
{
|
||||
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))
|
||||
|
@ -968,12 +968,12 @@ e_border_focus_set(E_Border *bd, int focus, int set)
|
|||
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);
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -515,33 +515,30 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
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;
|
||||
|
@ -563,6 +560,10 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
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)
|
||||
{
|
||||
|
@ -599,6 +600,10 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
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)
|
||||
{
|
||||
|
@ -652,62 +657,56 @@ e_hints_window_state_update(E_Border *bd, Ecore_X_Window_State state,
|
|||
}
|
||||
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 */
|
||||
|
|
Loading…
Reference in New Issue