Commit Graph

69 Commits

Author SHA1 Message Date
Mike Blumenkrantz 7b44add514 redo iconic setting for new clients 2014-03-04 15:20:24 -05:00
Mike Blumenkrantz c720451933 force client urgency unsetting on focus
fix T1016
2014-02-27 21:05:33 -05:00
Daniel Kolesa 6085d79df8 e_client: build fix 2014-02-25 19:40:37 +00:00
Mike Blumenkrantz c4a9adebc8 bugfix: don't use raise stack for iterating clients
T914
2014-02-21 17:53:14 -05:00
Mike Blumenkrantz d6c037ff30 fix maximize size calculation on non-current desks with shelves 2014-02-21 17:19:02 -05:00
Mike Blumenkrantz 21d9b84c53 force resizing when changing desk on same screen
this normally happens in zone_set
2014-02-21 17:19:01 -05:00
Mike Blumenkrantz 0e66cdda82 only move/resize non-override internal clients during eval
T1007
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz f75a923ab0 break out client focus reset into separate function 2014-02-21 16:44:12 -05:00
Mike Blumenkrantz 88831252c8 use current desk when unsetting client sticky property
T989
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz 0bd9052c7e better fix for exec client removal: don't remove if exec is deleted 2014-02-18 06:56:54 -05:00
Mike Blumenkrantz 4c2db4342a bugfix: unref client when removing from exec if exec is deleted
fixes a race condition where client would never be freed when closing lots of windows simultaneously
2014-02-17 16:21:02 -03:00
Mike Blumenkrantz e6fa8f3176 don't unfullscreen clients if:
* iconic

* hidden (desk flipped)

* not on current zone

T920
2014-02-14 15:08:23 -05:00
Mike Blumenkrantz aa37188e02 add maximize_pre and unmaximize_pre smart callbacks 2014-02-12 20:37:39 -05:00
Mike Blumenkrantz 0b2e3ea2e3 add unmaximize_done client smart callback 2014-02-12 19:50:17 -05:00
Mike Blumenkrantz 82faa72a45 move maximize_done client smart callback to the end of maximize 2014-02-12 19:49:58 -05:00
Mike Blumenkrantz 0d2945149a client signal actions are not mouse actions
mouse actions have a different end path which causes pointer popping to not occur

T913
2014-02-12 12:06:13 -05:00
Mike Blumenkrantz 1f534c3b32 set client move/resize vars in time for client hooks 2014-02-12 11:50:00 -05:00
Mike Blumenkrantz 5a14f9f00e unset client.saved after unmaximize callback 2014-02-11 19:28:25 -05:00
Mike Blumenkrantz 3f5b5b03b2 call unmaximize smart callback for all unmaximizes, fix client sizing on directional unmax 2014-02-11 19:01:36 -05:00
Mike Blumenkrantz ffe5670b39 add "maximize_done" smart callback for clients 2014-02-11 18:48:56 -05:00
Mike Blumenkrantz 29cd45142a remove E_EVENT_CLIENT_(UN)STICK, use E_EVENT_CLIENT_PROPERTY & E_CLIENT_PROPERTY_STICKY 2014-02-10 20:10:38 -05:00
Mike Blumenkrantz c47a7e9b8f improve _e_client_move_begin():
* set ec->moving before MOVE_BEGIN hook

* remove comp grab on failure

* only raise if move succeeds
2014-02-07 14:29:07 -05:00
Mike Blumenkrantz 86d92adba6 set ecresize in e_client_resize_begin() 2014-02-07 14:24:37 -05:00
Mike Blumenkrantz 2817bf025b more e_client_resize_begin() improvements: remove comp grab on failure 2014-02-07 14:23:55 -05:00
Mike Blumenkrantz dab9f9eb3c don't double unset resize_mode on e_client_resize_begin() failure 2014-02-07 12:04:06 -05:00
Mike Blumenkrantz e68837c1d6 e_client_resize_begin() fixes
* make return value accurate

* unset resize_mode on failure
2014-02-07 12:01:12 -05:00
Mike Blumenkrantz 059870b970 layer setting on overrides during client_new wasn't a placeholder, just using the wrong value
T908
2014-02-07 09:23:50 -05:00
Mike Blumenkrantz ea7c0c3dcd improve stringshare use in e_client_desk_set 2014-02-06 12:52:48 -05:00
Mike Blumenkrantz 569c90e87f e_client_util_is_stacking() -> e_client_is_stacking()
regrettably, this can't be in e_client.x because it needs E_Comp struct members and header order does not allow for this :(
2014-02-05 10:58:57 -05:00
Mike Blumenkrantz 8d71213839 e_client_name_get() -> e_client_util_name_get()
this should be inlined
2014-02-05 10:55:50 -05:00
Mike Blumenkrantz eba912cf6a e_client_resizing_get() -> e_client_util_resizing_get()
functions in e_client.x should be namespaced with e_client_util to indicate that they are inline (and in e_client.x)
2014-02-05 10:51:36 -05:00
Mike Blumenkrantz 20c09a3891 don't check client zone during idler
this happens on every move and resize, no need to check it a third time
2014-02-03 13:58:57 -05:00
Mike Blumenkrantz 7efa7b3f27 don't overwrite existing coords on creation of override client
overrides come with their own placement for zones
2014-02-03 13:55:38 -05:00
Mike Blumenkrantz d293b368b8 bugfix: screen limits policy no longer breaks X client positioning
this has been broken since it was added, and I strongly regret allowing it to be added.
2014-02-03 12:52:35 -05:00
Mike Blumenkrantz 7ef4340c3f revert 83397e1bde 2014-01-29 21:12:07 -05:00
Carsten Haitzler 83397e1bde fix segv where comp_data is null but still accessed
it seems i have an override-redirect window just off the bottom-right
of my screen - i think its the scim input panel status. what happens
is it is "managed" by comp but then deleted (_e_comp_x_hook_client_del
called), BUT _e_comp_x_object_add is called with a deferred event for
that client to add it again (likely this is a race) which finds he
client in a state of not having comp_data as the E_FREE in
_e_comp_x_hook_client_del() frees it and sets it to NULL. move the
comp_data free to the actual client free (which is the last time a
client is valid at all) solves this.
2014-01-30 08:55:28 +09:00
Mike Blumenkrantz 2c41e314d0 check sticky flag when setting comp hidden on desk set
seriously guys, I fixed sticky windows this time. seriously.
2014-01-27 21:49:34 -05:00
Mike Blumenkrantz cf267da573 also fix unsticking clients
e_client_desk_set() will sort out the hidden flag here automatically, so unsetting it is always the better choice
2014-01-27 21:44:05 -05:00
Mike Blumenkrantz 35aaabc491 fix toggling sticky state on clients
previously this would break windows if it was set based on persisting X hints
2014-01-27 21:35:39 -05:00
Mike Blumenkrantz 3dd0ea5189 break out client urgency setting into separate api function
this unclutters the client idler a little and also makes it easier to correctly set the urgency hint for clients
2014-01-27 21:35:39 -05:00
Mike Blumenkrantz 7a8a06ec7e set all clients to NORMAL layer by default
I added a workaround for overrides a while ago when things were less good and then didn't take it out again when things became more good

T718
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz cd2cde6477 clean up client delete+unfocus
previously there were cases where client focus was not explicitly unset on delete, which resulted in expected client hooks not being called and minor inconveniences to occur
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz 4614d8b0fb and fix window_move action by putting this line back 2014-01-23 09:12:10 -05:00
Mike Blumenkrantz b1fd48af59 don't double grab compositor input during client actions
T844
2014-01-23 08:52:45 -05:00
Mike Blumenkrantz b4a9c55115 attempt to revert focus when iconifying a client 2014-01-20 16:43:47 -05:00
Mike Blumenkrantz 6ef655d2dd feature: blanking options for wakeup on events (urgent + notify) 2014-01-20 16:08:14 -05:00
Mike Blumenkrantz aefaaea57b unify client borderless checks to use util function 2014-01-20 15:12:40 -05:00
Mike Blumenkrantz d42b24632e also update frame immediately during unmaximize 2014-01-20 00:08:25 -05:00
Mike Blumenkrantz ef2a96eb82 apply frame changes before entering/exiting fullscreen
T816
2014-01-20 00:03:51 -05:00
Mike Blumenkrantz bcee2e34aa break out client frame setting into helper function 2014-01-20 00:00:45 -05:00