Commit Graph

8927 Commits

Author SHA1 Message Date
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
Carsten Haitzler 231b780996 e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses
so since this e main idler freeze/thaw i've noticed several times, i
come back to my machine after screen-off time period, i wke it up with
a mouse wiggle or keyboard press and try run terminology - no windwo
appears. i can run it all i want - it never shows up but the processes
are there. i've seen it happen to sylpheed where its fetch window
doesn't appear. i've had myserious menu edje objects on the top-left
with only a single item with no bg. i've had e even unable to restart
on ctrl+alt+end.

so i disabled the idler freeze/thaw as i suspected this is what the
root cause is, and sinc ethen the above problems stopped manifesting.
i can only conclude it's a deep and nasty bi-product of stopping the e
main idler, so don't do it. :) better be a bit less efficient than
buggy. either way setting manual rendering and dropping the animator
framerate should do almost all the things needed anyway.
2014-02-04 08:08:20 +09:00
Mike Blumenkrantz de9dde6daf remember comp object dirty state and update when necessary
normal clients rely upon the guarantee that they will receive another resize on next render when size updates occur before visibility happens, but overrides will never receive another resize since they always size accurately. by remembering that the state was previously considered dirty, render updates which occur before visibility are no longer lost until the next damage/resize occurs

tl;dr: your menus show up again
2014-02-03 14:00:12 -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 f4de16df08 don't change zone after moving client
this happens automatically, and with more accuracy, later on
2014-02-03 13:57:45 -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 3c436b5c09 bugfix: initial client positioning with multiple monitors improved
this was added a while ago to fix positioning of windows that wanted to start centered but couldn't accurately calculate xinerama screen sizes, resulting in windows getting centered across the screen split. it ended up being a bit too aggressive, however.
2014-02-03 13:03:01 -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 ad8b4e6d4d track main loop edje freeze state 2014-02-03 11:58:02 -05:00
Mike Blumenkrantz ebeffa1a91 bugfix: hide drag icons after dnd operation ends
T797
2014-02-03 11:14:04 -05:00
Mike Blumenkrantz 21019e952f Revert "add default comp match for geany autocompete window"
This reverts commit 5c5a89bfec.
2014-01-30 19:15:47 -05:00
Carsten Haitzler 2de63a2f0b comp matches - add menu and dnd types in list 2014-01-31 08:50:37 +09:00
Mike Blumenkrantz 9409f435a3 e_util_glob functions now automatch when pointers are the same 2014-01-30 13:11:00 -05:00
Mike Blumenkrantz d3468dd920 feature: ACTIVATE_EXCLUDE window active hint policy
this option causes window activation requests to only activate a window if it is on a currently visible virtual desktop, otherwise it will be set as urgent. I recall that things may have worked this way long ago...
2014-01-30 12:45:49 -05:00
Mike Blumenkrantz 3125c3a674 fix more misuses of comp animating flag
this should even things out permanently here and ensure things get deleted when they should

related: T879
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 4bae09712d internal windows are NOT re_manage
setting re_manage breaks visibility animations on first show
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 752c220482 redo X first_damage logic
the main idea here is to not DRAW at the time of the first damage to avoid overdraw, but ignoring the fact that the region is ready to be drawn can be problematic when the drawing eventually occurs. best choice here is to keep the region but not the render update
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 340e02efb5 ignore non-internal override clients when stacking
this fixes the case where clients will briefly escape normal/expected stacking on startup if an override is visible
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 53e477a7d0 simplify layer marker stacking setup 2014-01-30 12:12:01 -05:00
Mike Blumenkrantz b6cbacc77e ignore re_manage clients for X object creation events 2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 5c5a89bfec add default comp match for geany autocompete window
given that we're compositing-only now, we should be adding more of these for common apps to improve the user experience on a base configuration
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz d1fb844db0 bugfix: comp matching correctly edits in place and doesn't crash 2014-01-30 12:12:01 -05:00
Mike Blumenkrantz cd6fcead3e add object configuration to comp matches 2014-01-30 12:12:01 -05:00
Mike Blumenkrantz 1d22c527a3 force comp reshadow after pixmap fetch succeeds, not during setup
reshadowing earlier than this makes it very likely that client attributes have not been fetched, meaning that the match will fall through to a default type match instead of using the correct one
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz 49cfe28719 use object list for comp matching internal objects 2014-01-30 12:12:00 -05:00
Mike Blumenkrantz 2ef7f0f760 rename tabs in comp match dialog to be more descriptive 2014-01-30 12:12:00 -05:00
Mike Blumenkrantz 628696f2af use E_Window_Type for comp match dialog instead of Ecore_X_Window_Type 2014-01-30 12:12:00 -05:00
Mike Blumenkrantz 4bcc43282e use E_Window_Type for comp matches instead of Ecore_X_Window_Type 2014-01-30 12:12:00 -05:00
Mike Blumenkrantz f14aa06c7c remove default comp match for Background_Window
this no longer exists
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz 37fd470632 remove default comp match for Init_Window
this no longer exists
2014-01-30 12:12:00 -05:00
Daniel Kolesa 811c57cfaf enlightenment: fix menu placement 2014-01-30 12:17:54 +00:00
Mike Blumenkrantz 8e6cd13766 fix some misuses of comp animating flag
T879
2014-01-30 06:59:11 -05:00
Mike Blumenkrantz 5a2aab8457 reject stopping comp object effect if wrong end_cb is passed 2014-01-30 06:55:14 -05:00
Mike Blumenkrantz 9d3f47f4f6 ignore deleted clients on comp object add event 2014-01-29 21:12:07 -05:00
Mike Blumenkrantz db01319aee ref client itself during comp object add event 2014-01-29 21:12:07 -05:00
Mike Blumenkrantz 7ef4340c3f revert 83397e1bde 2014-01-29 21:12:07 -05:00
Mike Blumenkrantz 10ef8170d4 remove iconify files 2014-01-29 21:12:07 -05:00
Carsten Haitzler b7515a0958 null out damage on free in _e_comp_x_hook_client_del 2014-01-30 11:02:44 +09: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 9b36b9b78c remove comp iconify hacks (and e_iconify api), expand comp object effect api
instead of adding specific handling which will work (sometimes) in one specific case, expand already-existing api to provide the needed functionality for iconify animations. now on emitting any signal to a comp object, optional glob-able effect providers can be hooked and prioritized to add effect animations

also use animating flags now when applying an object effect

a base effect is provided in elementary, but now each module which wants to hook iconify animations (or other events) can do so in the theme and have different animations with their module
2014-01-29 13:36:42 -05:00
Mike Blumenkrantz e5bbb98918 don't reset focus to iconified clients on autoclose delete 2014-01-29 13:36:42 -05:00
Mike Blumenkrantz c4afece1a3 revert 8b62039e6a, use existing layer_block flag 2014-01-29 13:36:41 -05:00
Carsten Haitzler 5bfbc3f5f9 iconify - fix priority handling for iconify provider 2014-01-29 23:09:19 +09:00
Carsten Haitzler 8b62039e6a support temporary layer changes for iconify anim purposes 2014-01-29 22:42:54 +09:00
Carsten Haitzler 1ede2a5632 iconify provider - the ability to provide geometry for src/dst of iconify
ibox now uses this as an initial test. there are teething problems:

1. unknown location for new icon (guess that its on right)
2. stacking - the animation is at the stacking layer of the comp obj
   ... this probably needs a way for the comp shobj to request a
   temporary stacking change until anim done
2014-01-29 22:42:54 +09:00
Mike Blumenkrantz 1efb80bddb set manual render and increase ecore frametime during screensaver 2014-01-28 21:13:55 -05:00
Mike Blumenkrantz 82dd3443ea always thaw edje when freezing main idlers
this prevents edje from being stuck in the frozen state upon wakeup
2014-01-28 20:45:43 -05:00
Mike Blumenkrantz 0ff2a408d3 force stacking for all new X clients during add event
this fixes a race condition when windows open simultaneously and then are stacked under each other: the previous result was that they would end up hanging out at the top of the window stack (above all windows) until another window was raised above them. now they stack as expected
2014-01-28 20:43:19 -05:00
Mike Blumenkrantz 576f0bab2d reject successive attempts to add evas callbacks in X compositor 2014-01-28 20:43:03 -05:00
Mike Blumenkrantz 49d6de3316 send X flush/dump to client window, not parent window 2014-01-28 15:38:40 -05: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 55bc44c9b8 feature: main idlers now freeze during screensaver to conserve power 2014-01-27 21:44:51 -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 f54d669f43 add forgotten proto for e_widget_filepreview_clamp_video_set 2014-01-27 21:35:39 -05:00
Mike Blumenkrantz 7e0efcc508 remove e_main idler api
this was pretty old/legacy and looked like it would fall over pretty easily. there's no users and I see no use for it, so it goes bye bye

removals: e_main_idler_before* api
2014-01-27 16:15:07 -05:00
Mike Blumenkrantz 927300053d feature: show video resolution in filepreview widget 2014-01-27 12:29:15 -05:00
Mike Blumenkrantz bc3e1fd94f feature: add fileman option to clamp video size for video previews
T102
2014-01-27 12:28:35 -05:00
Mike Blumenkrantz 6c79b3ea87 only change to image cursor if not using e cursor
T851
2014-01-27 11:18:03 -05:00
Mike Blumenkrantz 8aafbfe6ce X cursor color support doesn't depend on config values 2014-01-27 11:12:56 -05:00
Mike Blumenkrantz 9b2372a798 ignore X configure events where override is not set
this handler is only for dealing with overrides, so if this flag isn't set we're not interested
2014-01-27 10:58:41 -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 a466b92c8d make client util functions take NULL more gracefully 2014-01-27 10:58:41 -05:00
Mike Blumenkrantz b6f46fb622 ungrab comp input if either keyboard or mouse is set, not both
T858
2014-01-27 10:58:40 -05:00
Mike Blumenkrantz de58ff7ecd only hide/delete comp util objs if hiding flag is set
if an object is shown during the hide animation, this flag gets unset
2014-01-27 10:58:40 -05:00
Mike Blumenkrantz 6effdae157 fix comp util adding of already-visible objects
this fixes pager popups which don't use the new style of popup adding
2014-01-27 10:58:40 -05:00
Daniel Juyung Seo bbe9868c49 bugfix: fix up/down key directory of slider. 2014-01-27 13:18:04 +09:00
Carsten Haitzler 04265d3b9f bugfix: potential/maybe fix of e checking for itself on startup
unknown if this fixes the issue as i can't reproduce it.
2014-01-27 08:21:28 +09:00
Mike Blumenkrantz fa33846fe4 force show of X layer markers on startup
this is cosmetic and only quiets some console errors on startup
2014-01-24 18:42:52 -05:00
Mike Blumenkrantz 99dca3c944 set first_damage flag on overrides
some overrides, in very rare cases, seem to only send a single damage. rendering at this point doesn't seem to hurt anything, so I'll give it a shot
2014-01-24 17:44:19 -05:00
Mike Blumenkrantz db31ccc5de unset new_client flag for override windows
this flag is used to block most cwm actions until after the client is past its first loop iteration. overrides, however, don't need to be blocked and will in fact break sometimes (fuck you gtk) as a result

it's worth noting that showing/hiding overrides extremely fast will still break the compositor a little in that I'm not going to render a single frame while constantly playing edje hide/show animations which are longer than the actual render. with animations disabled, however, rendering occurs as expected.

T831
2014-01-24 17:38:27 -05:00
Mike Blumenkrantz 6044fd8a78 force pixmap refresh for overrides, also automatically set pixmap size
override windows don't get PRESENT notifications, apparently, but this can be shortcut anyway by just setting the size from the configure event
2014-01-24 17:36:47 -05:00
Mike Blumenkrantz 09e15c49ac only clear comp updates on resize if it isn't the first resize 2014-01-24 17:33:37 -05:00
Mike Blumenkrantz 03accb7525 return 0 for client util window_get inlines if no pixmap available 2014-01-24 17:28:32 -05:00
Mike Blumenkrantz 57903b7aa3 only send ICCCM move/resize if it isn't already going to be sent 2014-01-24 16:20:21 -05:00
Mike Blumenkrantz d48f386c23 add define for making render debug messages easier to enable 2014-01-24 16:07:33 -05:00
Mike Blumenkrantz c06eca070d send ICCCM move/resize for configure requests on X windows
somehow this got left out of the E19 handler, which broke apps that relied upon such notifications, most notably gnome-terminal
2014-01-24 16:01:01 -05:00
Mike Blumenkrantz a4c5629e7a check for comp data deletion and block X calls
these are all invalid if client's comp data has already been cleared, so just let the compositor manipulate stuff without touching protolol
2014-01-24 13:13:07 -05:00
Mike Blumenkrantz d4abb904ad fix cursor visibility when working with canvas cursors
wayland cursors no longer override E cursors depending on config, and they also no longer randomly delete your cursor entirely

T851
2014-01-23 17:06:27 -05:00
Mike Blumenkrantz 99a4e5bd27 remove e_pointer_block api
this was a failure idea for a way to block X cursor changes using an api, which turned out to be overengineered
2014-01-23 17:04:41 -05:00
Mike Blumenkrantz 1f25710907 reset pointer type from config when updating size
this fixes switching between X/E cursors without restarting
2014-01-23 17:03:56 -05:00
Mike Blumenkrantz e9c0e2c829 set X cursor color availability based on current compositor's root cursor
internal window cursors now display normally

T785
2014-01-23 16:17:34 -05:00
Mike Blumenkrantz e54434e2db set X root pointer after determining color availability
E cursor now shows normally on startup
2014-01-23 16:16:58 -05:00
Mike Blumenkrantz ba82fb221d set only one client, the top client, as the focused client on restarts
with this, stacking and focus should be perfectly preserved across e restarts
2014-01-23 13:26:35 -05:00
Mike Blumenkrantz 00c4873d06 force X stacking for re-managed clients on startup
this ensures that X stacking is the same as canvas stacking
2014-01-23 13:26:00 -05:00
Mike Blumenkrantz 6a80d19cd7 restack windows after unreparenting on shutdown
this preserves stacking order across restarts
2014-01-23 13:25:25 -05:00
Mike Blumenkrantz c73aed330b only set take_focus for X clients after main loop has been reached 2014-01-23 13:24:46 -05:00
Mike Blumenkrantz a38d8828e9 don't bother with client hide animations on shutdown/restart 2014-01-23 13:23:41 -05:00
Mike Blumenkrantz f0bb277632 don't free client list on comp shutdown
clients remove themselves from the client list, so this makes us fail at freeing all the clients
2014-01-23 13:20:40 -05:00
Mike Blumenkrantz aba8a6fe32 create clients for stacking windows immediately, don't check for them later 2014-01-23 12:01:31 -05:00
Mike Blumenkrantz 40a3950855 trivial use local window variable instead of helper function 2014-01-23 11:48:18 -05:00
Mike Blumenkrantz 525a342b2e suuuuuper don't restack layer markers 2014-01-23 11:42:22 -05:00
Mike Blumenkrantz b10f81de08 clean up shape input rect setting code 2014-01-23 10:34:17 -05:00
Mike Blumenkrantz 5707e8ceb8 I was right the first time...disable shape events on internal wins not input_only 2014-01-23 10:34:17 -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 292e8fd4b3 Revert "comp: fix self feeding event loop with shape input events on override wins"
This reverts commit 05a7087c84.
2014-01-23 09:02:33 -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 006c09621b revert 0f3e3ae5da, 14207e9770
shape modification on overrides

T847
2014-01-23 08:52:45 -05:00
Carsten Haitzler 05a7087c84 comp: fix self feeding event loop with shape input events on override wins
so comp would call ecore_x_composite_window_events_enable in
_e_comp_x_client_shape_input_rectangle_set()
_e_comp_x_hook_client_post_new_client() all the time.. because
ec->need_shape_merge was always set.. why was it always set.. because
ecore_x_composite_window_events_enable woudl set shape rectangles to
make the window visible to input events... so e would feed itsefl with
events all day long via x. this shortcuts that to check if event rects
are the SAME then don't set them as the ones that are stored.
2014-01-23 19:58:59 +09:00
Mike Blumenkrantz 0f3e3ae5da ignore only non-override non-reparented clients when disabling composite events 2014-01-22 22:34:55 -05:00
Mike Blumenkrantz 7f72d160af don't select shape events for input_only clients, do set for internal clients 2014-01-22 22:34:01 -05:00
Mike Blumenkrantz e115cbc906 reset focus to last focused client upon closing an autoclose object 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 5549c1b530 handle shaped overrides more accurately for theme and rendering
overrides don't get to do shape exports for rendering, so this needs to be done during the initial shape check
2014-01-22 22:14:33 -05:00
Mike Blumenkrantz c24d3c60aa break out X shape rect check loop into helper function 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz ae4e98b856 only set shape export flag during shape update event for non-overrides 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 14207e9770 allow toggling composite window events for override windows 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 2d29661541 select shape events for override clients 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz d5ce4e0517 more commented out debug lines for comp object 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 9201ac12d4 resize pending update tiler during size update
another tiler gets merged a few lines down and clipping is bad
2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 2943d88042 only set shape merge/export flags for non-override clients on resize 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 199882ea25 disable shadows for override clients with alpha 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 6b246c7c8a clean up comp object autoclosing when overwriting existing autoclose object 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 9a3ea2d1bb use regular comp grabs for menu 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz aad88716a4 fix compositor grab tracking
it's possible to have multiple/recursive grabs, so the number of grabs active needs to be tracked

T820
2014-01-22 22:14:33 -05:00
Mike Blumenkrantz b363dc802d use client fullscreen flag to determine current fullscreen state
T834
2014-01-22 22:14:33 -05:00
Mike Blumenkrantz fdc3d29899 bugfix: remove drop handlers from responsive hash on deletion 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 3e0cbdc441 bugfix: efm dnd to external windows
deleting the drag at this point deletes the window which owns the current selection, guaranteeing that the operation will fail

T797
2014-01-22 22:14:33 -05:00
Mike Blumenkrantz d86051ff82 bugfix: multiple drop handlers using same window no longer overwrite each other 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz 2dac967604 shadow checks for overrides only need to check for shaped and comp match
T833
2014-01-22 22:14:33 -05:00
Mike Blumenkrantz db7a1f6df3 force prerendering for internal clients
we can assume that these are always going to be ready for drawing immediately, and sometimes X fucks up the damages so it's best to go with the full frame from the beginning
2014-01-22 22:14:33 -05:00
Carsten Haitzler 15abb86bea efm - emit signal to icon when rename starts/ends
this, along with theme updates in elm should fix T799
2014-01-22 18:31:49 +09:00
Mike Blumenkrantz a8d3a0e57f emit backlight changed event for X backlight events 2014-01-21 17:26:21 -05:00
Mike Blumenkrantz 3ccdd6ab32 bugfix: backlight double comparison now less likely to fail 2014-01-21 17:08:49 -05:00
Mike Blumenkrantz 0f938c9b78 do Xrandr backlight updates in place upon recieving events instead of looping all outputs 2014-01-21 17:07:21 -05:00
Mike Blumenkrantz 84a3eb7af0 make current backlight value internally exported
display system backends should be handling this in the event of changes, and being able to set it directly makes that easier
2014-01-21 17:06:27 -05:00
Mike Blumenkrantz 215c0409e0 feature: handle xrandr backlight using a single, accurate handler
there's an event from ecore-x which tells us when this property has changed, which means we no longer have to be constantly checking to see if other apps have changed it
2014-01-21 16:48:09 -05:00
Mike Blumenkrantz d2f9a2efbf cleanup frame icon upon failing to use it 2014-01-21 09:32:02 -05:00
Carsten Haitzler 9b4b003c40 make example/syntac for app action useful. 2014-01-21 21:30:17 +09:00
Mike Blumenkrantz bec5d1fe51 backlight update loop cleanups
* do null check before adding to device list

* use name length from ecore_x_randr_output_name_get()
2014-01-20 22:21:40 -05:00
Mike Blumenkrantz 3addb45e79 fix fullscreen client place/adjust 2014-01-20 21:33:11 -05:00
Mike Blumenkrantz 0be9442140 only call ecore_x_randr_output_backlight_available() once in backlight 2014-01-20 21:30:38 -05:00
Mike Blumenkrantz a310de50c8 block backlight updating during animation
updating backlight in this context causes my backlight to never return to normal levels, and blocking it doesn't seem to be unreasonable here
2014-01-20 21:05:51 -05:00
Mike Blumenkrantz 3ae9e394ec add back first_draw_delay timer for X clients
this is a safety timer to handle the case of "what happens if a new client only ever sends one damage during its startup"
2014-01-20 19:03:50 -05:00
Mike Blumenkrantz 69d3e02638 ignore first damage for X clients
when not dealing with a re_manage client (persisting from previous E instance), we're almost definitely going to get multiple full-window damages as a new client starts up. the first damage USUALLY results in a garbage render, so ignoring it makes the first frame become actual window content (good!) or a transparent rect until the client finishes drawing (not good!), which is at least an improvement over showing random pixels
2014-01-20 19:01:04 -05:00
Mike Blumenkrantz 30d6b2e196 remove the black frame render fallback
I think the timing on resizes is perfect now, so we should never need to see this
2014-01-20 18:58:53 -05:00
Mike Blumenkrantz 097331864a clear non-pending updates on resize
this smooths out resizes a barely noticeable amount since these updates (the pending-pending updates) are no longer relevant
2014-01-20 18:58:26 -05:00
Mike Blumenkrantz 4615db497c remove damage from show interceptor
this is a bit broken since an actual damage might not have occurred yet. moderately sure I added it for testing at one point and then never removed it
2014-01-20 18:56:37 -05:00
Mike Blumenkrantz e148451d4f check for pending render updates before doing a black frame 2014-01-20 17:34:12 -05:00
Mike Blumenkrantz 36edca0773 remove unnecessary damage from resize 2014-01-20 17:28:16 -05:00
Mike Blumenkrantz d0713cddb4 fix shading animations
yeeeep it's that simple. should probably move these to edje at some point
2014-01-20 17:27:31 -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 8fe70c3d2a fix client geometry when toggling borderless state 2014-01-20 15:12:23 -05:00
Mike Blumenkrantz ed51fa2b96 add client util function for detecting borderless state 2014-01-20 15:11:53 -05:00
Carsten Haitzler cd431350a5 e sys - if logout has trouble - resume so user can see dialog 2014-01-20 15:23:30 +09: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
Carsten Haitzler b48dc88f94 modules - add packagekit to the whitelist of ok modules 2014-01-20 12:04:19 +09:00
Mike Blumenkrantz ec8424fb16 remove duplicate shaped client handling 2014-01-19 03:33:40 -05:00
Mike Blumenkrantz 8ce457889e ensure withdrawn state is always set
this is what was breaking shows on things like yakuake
2014-01-19 03:33:39 -05:00
Mike Blumenkrantz 32d4c2f2b9 fix X shape exporting when bounding box changes
this fixes rendering on shaped clients like yakuake and makes them render even more accurately than E18

PS. I hate shape extension.
2014-01-19 03:33:30 -05:00
Mike Blumenkrantz cbfee4f53e uncomment debug function 2014-01-19 00:45:41 -05:00
ChunEon Park 7474036140 enlightenment - removed warnings. 2014-01-18 19:37:02 +09:00
Mike Blumenkrantz d65ef1412f try grouping phony execs together
this saves a little memory and also makes related eventing more useful
2014-01-17 19:02:56 -05:00
Mike Blumenkrantz c66cdc1416 only add client to raise stack if focus tracking is enabled
focus tracking only gets frozen by winlist, at which point it's most likely that users also don't want the raise stack to be altered
2014-01-17 17:49:10 -05:00