Commit Graph

8985 Commits

Author SHA1 Message Date
Sebastian Dransfeld f32426878c randr: common function for fetching output name
Add a common function to get output name, and also check edid if no name
is set by randr.
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld 82e7d1184c randr: remember crtc in output struct 2014-03-06 15:18:14 +01:00
Sebastian Dransfeld 2b4a70b283 randr: remove wrong typedef
There is no struct for crtc config
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld 5c6eed2307 randr: allocate hot-plugged outputs 2014-03-06 15:18:14 +01:00
Sebastian Dransfeld 11e21fd1ff randr: allocate hot-plugged crtcs 2014-03-06 15:18:14 +01:00
Sebastian Dransfeld 8b5153130a randr: Use already fetched root window 2014-03-06 15:18:14 +01:00
Mike Blumenkrantz 63b01101ee fix comp util object initial visibility 2014-03-05 10:53:05 -05:00
Mike Blumenkrantz 851ef43c41 force comp render on dirty for hidden objects with visible mirrors 2014-03-05 10:08:09 -05:00
Mike Blumenkrantz 8b4162d681 fix maximization geometry on desks with shelves
in some cases during startup a client can get post-maximize geometry before the sizing algorithm is applied

fix T1052
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz ee6b8e8c38 simplify maximize shelf fill visibility check 2014-03-05 10:08:09 -05:00
Mike Blumenkrantz 267966834f fix deskmirror visibility for re_manage previously-iconic clients 2014-03-05 10:08:09 -05:00
Mike Blumenkrantz f82351d3e2 reset client urgency on focus-out and iconify 2014-03-05 10:08:09 -05:00
Mike Blumenkrantz 9ad04eb877 redo client urgency again with separate flag for actual urgent state
preserve icccm flag for accurate detection
2014-03-05 10:08:09 -05:00
Stefan Schmidt 58286beed4 e_comp_wl: Remove unused variable.
Later on we use state_w directly.
2014-03-05 13:41:35 +01:00
Mike Blumenkrantz 8568a76313 always set iconic client comp state as visible
pass: init_states
2014-03-04 15:20:24 -05:00
Mike Blumenkrantz 5241140dd2 don't run client visibility idler updates for iconic clients 2014-03-04 15:20:24 -05:00
Mike Blumenkrantz 7b44add514 redo iconic setting for new clients 2014-03-04 15:20:24 -05:00
Mike Blumenkrantz 043a3c17e0 fix some enum decls 2014-03-04 15:20:24 -05:00
Carsten Haitzler 5c8710ded3 fix screen blanking while fullscreen window is up - work again
@fix - this fixes T1019 - when a window is fullscreen the display just
NVER can blank no mater what. it's hrdcoded, and wrong to enforce. if
an app wants to display screensaver - there is the xscreensaver extn -
or maybe supporting an explicit property on a window would work
better, but just equating fullscreen == never blank is wrong. it's an
option now. off by default.
2014-03-01 08:04:09 +09:00
Mike Blumenkrantz e77d536466 remove comp override immediately on screensaver disable 2014-02-28 15:27:35 -05:00
Mike Blumenkrantz 41c4cded01 send unmaximize signal when unfullscreening
fix T1044
2014-02-28 14:55:27 -05:00
Mike Blumenkrantz 54999472de force full rerender on present pixmap size change
a new X extension should make this unnecessary in the future for pixmap resizes, but for now it seems to be a necessary evil

fix T993
2014-02-28 10:48:54 -05:00
Mike Blumenkrantz c720451933 force client urgency unsetting on focus
fix T1016
2014-02-27 21:05:33 -05:00
Mike Blumenkrantz 6555daf56d correctly set keygrab flag on renaming efm icon to not permanently break input 2014-02-27 20:51:02 -05:00
Mike Blumenkrantz 78403e2f54 don't reshadow on client redirect
fix T1019
2014-02-27 20:31:18 -05:00
Mike Blumenkrantz 6abcb5f946 save efm rename focus hook pointer 2014-02-27 20:26:16 -05:00
Mike Blumenkrantz c01a1fcc6c manage comp overrides for comp objects
fix T1019
2014-02-26 11:46:32 -05:00
Mike Blumenkrantz def17d763b +e_comp_util_object_is_above_nocomp() 2014-02-26 11:46:32 -05:00
Mike Blumenkrantz 6a90f66cc4 use comp overrides when grabbing comp input 2014-02-26 11:46:31 -05:00
Mike Blumenkrantz 7604e7a6f7 use one comp override per comp, not per zone, when toggling screensaver fading 2014-02-26 11:46:31 -05:00
Mike Blumenkrantz a331627e09 reduce comp override pop timer, successive pops trigger instapop 2014-02-26 11:46:31 -05:00
Mike Blumenkrantz a52ede0c66 track current nocomp client 2014-02-26 11:46:31 -05:00
Mike Blumenkrantz a22181c0da allow nocomp on some overrides 2014-02-26 11:46:31 -05:00
Mike Blumenkrantz ef26b0fb1e set client-redirected on overrides 2014-02-26 11:46:31 -05:00
Daniel Kolesa 79f3313931 e_comp_x: reverted 7c20b54 (was fixed in the meantime and i didn't notice) 2014-02-25 20:30:45 +00:00
Daniel Kolesa 7c20b5407a e_comp_x: check for zone before actually using it 2014-02-25 20:16:15 +00:00
Mike Blumenkrantz b7f4686d00 e_object zone warning-- 2014-02-25 14:44:05 -05:00
Daniel Kolesa 6085d79df8 e_client: build fix 2014-02-25 19:40:37 +00:00
Mike Blumenkrantz eca0549238 only set atoms for zone geometry for non-ignored clients
another T787 crash
2014-02-25 14:38:08 -05:00
Carsten Haitzler 0313a54da4 e-object-check - this has been turned off since 2007 - back on
this is crazy. all the E_OBJECT_CHECK macros have been off since 2007.
this is just nuts. either remove them, or have them on by default, but
not off. so this turns them back on and fixes code to actually compile
again with them on, as this broke over the years. a lot of code
expects/assumes thatthese willcheck types and null ptrs, but they
don't because they are off by default.
2014-02-26 04:28:12 +09:00
Mike Blumenkrantz 9395553039 don't reset ignored clients on canvas update
part of T787
2014-02-25 09:46:41 -05:00
Sebastian Dransfeld 43aed04241 randr: check NULL before dereference
Fixes CID 1181926
2014-02-24 09:17:25 +01:00
Mike Blumenkrantz c4a9adebc8 bugfix: don't use raise stack for iterating clients
T914
2014-02-21 17:53:14 -05:00
Mike Blumenkrantz b92fb1af3e fix visibility checks for shelves in client smart placement 2014-02-21 17:44:02 -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 5857bd32e5 fix e_maximize_client_shelf_fill() to account for all shelves 2014-02-21 17:19:01 -05:00
Mike Blumenkrantz 33370022af deskmirror now handles border theme changes 2014-02-21 17:19:01 -05:00
Mike Blumenkrantz 4cb130e25b break out deskmirror frame setup into helper function 2014-02-21 17:19:01 -05:00
Mike Blumenkrantz e86dc53ddc feature: per-screen desklock logo visibility config
T613
2014-02-21 17:18:57 -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 bf47dcdb79 cancel efm rename operation on focus change
T987
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz 25907a9f60 use comp grab functions consistently for efm grabs 2014-02-21 16:44:12 -05:00
Mike Blumenkrantz 96092f5f04 efm shouldn't accept file renames when selecting another file 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 4bf4fb69ed check focus reset after comp input ungrab 2014-02-21 16:44:12 -05:00
Mike Blumenkrantz 63d6153d86 reject comp autoclose refocus during comp input grabs 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 aec20f1420 force full render on present events during startup 2014-02-21 16:44:12 -05:00
Mike Blumenkrantz 71bfe06bb3 fix debug format string 2014-02-21 16:44:11 -05:00
Mike Blumenkrantz 1a3e86c3c9 fix race condition when repeatedly resizing clients too fast
T993
2014-02-21 16:44:11 -05:00
Carsten Haitzler 22369ffc7b ensure that the bg object exists before emitting signals in e_desk_show() 2014-02-21 09:34:25 +09: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 fba7100590 fix client menu layer checks
T984
2014-02-18 06:45:20 -05:00
Mike Blumenkrantz 37c1345aa1 fix crash when repeatedly opening multiple client menus 2014-02-17 17:30:15 -05:00
Mike Blumenkrantz ef360e1684 resize damage tiler on resize
this fixes render races which occur when damages and resizes happen in quick succession
2014-02-17 19:11:33 -03:00
Mike Blumenkrantz 14c7e58a29 improve infos for e_comp_util_wins_print() 2014-02-17 19:11:33 -03:00
Mike Blumenkrantz b317bedf5a remove comp object dirty flag
this logic was useful for another issue which has since been fixed. it currently only serves the purpose of triggering a race condition crash which I do not enjoy.
2014-02-17 16:21:02 -03: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
Sebastian Dransfeld 60483a11a0 randr: split config and current setup
This is so the current config does get changed unless the user requests
it, and makes it possible to have several configs.
2014-02-17 08:44:56 +01:00
Mike Blumenkrantz 7423b5cac1 really fix deskmirror sticky+hidden client handling
quickaccess...
2014-02-15 01:32:07 -05:00
Mike Blumenkrantz 025e0b7565 show hidden clients in deskmirror when in pager or taskbar mode 2014-02-15 01:25:21 -05:00
Mike Blumenkrantz 9419f687aa make e_win delete callback less recursive-prone 2014-02-14 15:49:49 -05: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 bbf29c6a2a only set want_focus for non-hidden clients when deferring focus setting
T950
2014-02-14 14:56:16 -05:00
Mike Blumenkrantz 46a715db35 hidden clients should be hidden in deskmirror 2014-02-14 14:46:07 -05:00
Mike Blumenkrantz 8df52a1f22 don't create remembers for ignored clients 2014-02-14 14:40:16 -05:00
Mike Blumenkrantz 96316e2969 bugfix: no more crashing when deleting entry widgets 2014-02-14 14:12:12 -05:00
Mike Blumenkrantz 494e6bc5ee another revision for client geometry resets: take new geometry instead of ignoring it 2014-02-14 13:43:15 -05:00
Mike Blumenkrantz 1c82215eaa force client changes when calling e_win geometry functions 2014-02-14 13:42:49 -05:00
Mike Blumenkrantz 208e7e17bc bugfix: adding/changing comp match window types is now possible 2014-02-14 13:05:17 -05:00
Mike Blumenkrantz 92c7ec1dad DOCKs should actually be "none" so they don't get shadows 2014-02-14 13:05:00 -05:00
Mike Blumenkrantz 9d9ee6c33b add default comp match for DOCK window types 2014-02-14 12:46:53 -05:00
Mike Blumenkrantz c7cf99ba45 bugfix: comp match adding once again functional 2014-02-14 12:41:34 -05:00
Mike Blumenkrantz 09cb41f1dc only reset move/resize attempts if the pending move/resize is different than the current one 2014-02-13 22:46:48 -05:00
Mike Blumenkrantz d80dbc1a35 add maximize_override client flag
sometimes you just want to do stuff on a client without any maximize logic applying!
2014-02-12 20:37:52 -05:00
Mike Blumenkrantz aa37188e02 add maximize_pre and unmaximize_pre smart callbacks 2014-02-12 20:37:39 -05:00
Mike Blumenkrantz 7571ccb2d8 reapply geometry and unset post flags when a client intercept gets the current geometry 2014-02-12 19:50:50 -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
Carsten Haitzler 3e17092db8 fix segv with comp post_updates
if we keep a list of e clients... either make sure any client deleted
is removed from the list on deletion... OR use ref/unref to ensure it
stays alive as long as it's in the list.
2014-02-12 12:34:28 +09:00
Mike Blumenkrantz 6802ae750d send smart object to comp effect end cb 2014-02-11 22:29:34 -05:00
Mike Blumenkrantz 449ec43d1f size comp zoomap child to pixmap, not client
this affects nothing
2014-02-11 21:45:04 -05:00
Mike Blumenkrantz 57f0bf6429 fix zoomap alpha setting
doesn't affect anything right now, but someday...
2014-02-11 21:43:54 -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 e564187759 hook shadow_change smart callback to fix deskmirror shadows without crashing constantly 2014-02-11 18:48:14 -05:00
Mike Blumenkrantz adb398b6be Revert "fix pager16 shadow inconssistency"
This reverts commit c91840ea54.
2014-02-11 18:42:17 -05:00
Mike Blumenkrantz 2fd21db5e0 Revert "fix deskmirror crash from c91840ea54a398f56a513a9d02608f323d7e8f65"
This reverts commit 6221fb7c90.
2014-02-11 18:42:06 -05:00
Mike Blumenkrantz c3ce56c1dc it's possible that a comp effect has no post-effect callback 2014-02-11 18:40:22 -05:00
Mike Blumenkrantz bf48616a47 remove shadow check from shape apply 2014-02-11 18:40:02 -05:00
Mike Blumenkrantz d9be56ad41 add smart callback on comp object for shadow change 2014-02-11 18:39:51 -05:00
Mike Blumenkrantz 6221fb7c90 fix deskmirror crash from c91840ea54
T941
2014-02-11 18:31:06 -05:00
Carsten Haitzler ed5f83ab0b fix probably NULL ic segv cause in efm
this SHOULD fix T933 if i could ever reproduce it...
2014-02-11 14:49:23 +09:00
Mike Blumenkrantz 0291edd719 hook STICKY client property change in deskmirror
T936
2014-02-10 20:14:59 -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 e895d86839 set comp mirror alpha the same way as objects
T928
2014-02-10 09:54:01 -05:00
Mike Blumenkrantz 722b18de9a set precise_is_inside based on shaped || shaped_input 2014-02-10 09:48:13 -05:00
Mike Blumenkrantz e7127a93ff don't set input shape differently on shaped_input clients
T931
2014-02-10 09:45:53 -05:00
Mike Blumenkrantz a78d98700a apply shadow states during theme setup
T885
2014-02-10 09:12:43 -05:00
Mike Blumenkrantz e105c10d80 client shadow check with argb windows now returns based on frame state
T929
2014-02-10 09:12:28 -05:00
Carsten Haitzler c91840ea54 fix pager16 shadow inconssistency
fixes T930
2014-02-10 12:21:27 +09: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 b97d043b25 assume that if we can't find a requested stacking client (X) it's going to be at the top of the stack
T908
2014-02-06 21:46:12 -05:00
Mike Blumenkrantz 9356644acc set shelves to lowest object on layer 2014-02-06 21:43:40 -05:00
Mike Blumenkrantz 6524711e68 set comp theme object shadow state to off during setup
T907
2014-02-06 20:52:31 -05:00
Mike Blumenkrantz 446eb19653 use regular edje signal emit on regular edje objects 2014-02-06 20:51:58 -05:00
Mike Blumenkrantz f71c85b509 feature: check udisks1 DevicePresentationHide flag
from D505
2014-02-06 13:15:41 -05:00
Mike Blumenkrantz 78334b615e more stringshare improvements for window profile, apply window profile if no desk set (impossible?) 2014-02-06 12:59:28 -05:00
Mike Blumenkrantz 442f3904ed remove unused var 2014-02-06 12:55:49 -05:00
Mike Blumenkrantz ea7c0c3dcd improve stringshare use in e_client_desk_set 2014-02-06 12:52:48 -05:00
Mike Blumenkrantz 7b5257530a specify that E_Desk string members are stringshared 2014-02-06 12:39:09 -05:00
Mike Blumenkrantz 793b6ff319 improve stringshare use for e_desk window profile and name 2014-02-06 12:38:59 -05:00
Mike Blumenkrantz c8ba69e3bf gadgets now delete the right menu when menu is deactivated
T906
2014-02-06 12:33:39 -05:00
Mike Blumenkrantz 1b7b765ee4 bugfix: race condition when deleting clients and their e_exec
this occurred occasionally when a client was the last one on a phony exe
2014-02-05 20:52:55 -05:00
Mike Blumenkrantz 3499f454bd fix signal callback deletion in comp effect start 2014-02-05 20:52:20 -05:00
Mike Blumenkrantz a3fbcc339b Revert "Revert "Revert "e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses"""
This reverts commit 91b3f2e0e1.

revert wars part 4: the blizzard blitz!

the main point of freezing idlers here was not, in fact, to optimize, but to block an infinite loop which pegged the cpu until screensaver ended. this solution should be less issue-prone for the one person who had issues with the previous fix.
2014-02-05 13:22:42 -05:00
Mike Blumenkrantz a16f820f95 only ignore protocol stacking if comp object is on a different layer 2014-02-05 13:05:05 -05:00
Mike Blumenkrantz 66325b2207 Revert "stop crash on accessing ec->desk if its null"
This reverts commit c3791d6b43.

this is a workaround which prevents the underlying bug from being fixed.
2014-02-05 12:47:03 -05:00
Carsten Haitzler 7a3a81b144 bgpreview - fix sizing to not overrun bounds - fixes wallpaper in pager16 2014-02-06 01:18:16 +09:00
Carsten Haitzler c3791d6b43 stop crash on accessing ec->desk if its null
unknown if this was a bug before - never saw it before, so for now
shal assume it's new.
2014-02-06 01:18:16 +09:00
Carsten Haitzler 91b3f2e0e1 Revert "Revert "e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses""
This reverts commit 3067f600ee.

revert wars! - i keep hitting problems - the one i still see is that i
come back to a machine that has blanked for a while - i launch some
app (terminology, sylpheed, chromium - doesn't matter) and no window
appears. psorcess is running. no matter how many times i launch it ...
no new process appears. this is a major bug. stopping the idler is an
optimization not a necessity.
2014-02-06 01:18:15 +09:00
Carsten Haitzler 4e8b14a245 formatting fix. 2014-02-06 01:18:15 +09: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 4eae850861 e_util_client_shadow_state_get() -> e_client_util_shadow_state_get()
removals: e_util_client_shadow_state_get
2014-02-05 10:48:31 -05:00
Mike Blumenkrantz 27768fcb03 guarantee comp shadow is off when frame exists 2014-02-05 10:48:01 -05:00
Mike Blumenkrantz cd37f23632 allow shadows on borderless, non-argb, non-shaped clients
T885
2014-02-04 22:27:23 -05:00
Mike Blumenkrantz ca760bb103 check client ignores before dereferencing desk
D519
2014-02-04 21:29:29 -05:00
Mike Blumenkrantz f3587f67f2 remove conf2 the rest of the way... 2014-02-04 09:41:07 -05:00
Mike Blumenkrantz 3067f600ee Revert "e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses"
This reverts commit 231b780996.

despite appearances, this functionality isn't solely for efficiency, and as such I have no plans for it to be removed.
2014-02-03 19:16:11 -05:00