Commit Graph

9148 Commits

Author SHA1 Message Date
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
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
Mike Blumenkrantz eee5bfea9c force X client adjust on frame change 2014-01-17 17:42:12 -05:00
Mike Blumenkrantz 4bebbf08d9 use right object to do frame unadjust when setting theme 2014-01-17 17:41:50 -05:00
Mike Blumenkrantz 43a8bbcc30 don't always raise clients on maximize 2014-01-17 17:41:30 -05:00
Mike Blumenkrantz 999f217f8b set pass events on deleted clients 2014-01-17 11:36:35 -05:00
Mike Blumenkrantz dd34319a19 only deactivate all menus on mouse down if active menu is present
T798
2014-01-17 11:21:20 -05:00
Mike Blumenkrantz 41429d188b fix fullscreen client crash
T796
2014-01-17 10:55:06 -05:00
Mike Blumenkrantz fda2442fe5 enforce correct geometry for client->saved.{x,y}
this is for CLIENT geometry and does NOT include the zone x/y
2014-01-16 20:27:07 -05:00
Mike Blumenkrantz ddc89ad46b reorder some startup stuff to not fail when ecore events haven't been initialized
eta until wayland-fb bug reports start rolling in: -5 minutes
2014-01-16 20:09:45 -05:00
Mike Blumenkrantz a12768c465 quick screensaver blocking hack for non-X instances 2014-01-16 20:09:12 -05:00
Mike Blumenkrantz ab2e108e54 allow client movement on one axis when vertical/horizontal maximized
T741
2014-01-16 15:47:35 -05:00
Mike Blumenkrantz 1ad30b0705 show the compositor overlay window when nocomp mode ends 2014-01-16 12:09:51 -05:00
Mike Blumenkrantz 0c441dfa79 block shape cutting during nocomp 2014-01-16 12:09:29 -05:00
Mike Blumenkrantz 171ad26858 silence some gadcon popup error messages from ibar menu 2014-01-16 11:36:16 -05:00
Mike Blumenkrantz c50eeab227 don't do client stacking remember/event if not redirected 2014-01-16 11:36:16 -05:00
Mike Blumenkrantz a1cfeaf988 s/e_theme_comp_border/e_theme_comp_frame/g 2014-01-16 11:15:08 -05:00
Mike Blumenkrantz 84b9e9f3ec fix comp style selector signals 2014-01-16 10:53:44 -05:00
Mike Blumenkrantz 68201a8d99 remove old hacks to work around back efm icon eventarea 2014-01-16 10:37:32 -05:00
Carsten Haitzler 00cb30ac6e window icon dnd - make sure icon is properly positioned under mouse 2014-01-16 21:05:57 +09:00
Mike Blumenkrantz f12cdee3ca adjust frame icon drag geometry
T776
2014-01-15 23:11:12 -05:00
Mike Blumenkrantz 18c74cb382 add e_comp_object_frame_icon_geometry_get 2014-01-15 23:11:07 -05:00
Mike Blumenkrantz b0d53be21d fix remember geometry updating
T791
2014-01-15 22:54:08 -05:00
Mike Blumenkrantz 2410660dd1 use current client position for post frame set any time changes.pos is set
T790
2014-01-15 21:14:38 -05:00
Mike Blumenkrantz 17291018db override/placed gets set on compositor side 2014-01-15 21:04:10 -05:00
Mike Blumenkrantz 37b6238d33 fix comp style display 2014-01-15 20:39:51 -05:00
Mike Blumenkrantz 25e39aaa2b block deskmirror client visibility changes during drags 2014-01-15 18:52:57 -05:00
Mike Blumenkrantz a658e4c198 add e_drag_current_get 2014-01-15 18:52:57 -05:00
Mike Blumenkrantz fb18230b27 block comp queues during hide on shutdown 2014-01-15 18:52:57 -05:00
Mike Blumenkrantz 32fd2f1776 fix keyboard move/resize info display 2014-01-15 17:01:44 -05:00
Mike Blumenkrantz 30ef7b217a add e_deskmirror_mirror_copy 2014-01-15 17:01:41 -05:00
Mike Blumenkrantz a33fa26847 only set shape mask if client has been reparented 2014-01-15 14:03:50 -05:00
Mike Blumenkrantz 36e2b03376 X override clients are already placed 2014-01-15 13:51:54 -05:00
Mike Blumenkrantz 047bcd7818 fix netwm sync resizing to account for frame geometry
T778
2014-01-15 12:13:05 -05:00
Mike Blumenkrantz d095b392e9 set netwm sync alarm to right struct member
T778
2014-01-15 12:13:05 -05:00
Mike Blumenkrantz a084217ba9 don't hints on override clients
T772
2014-01-15 12:13:04 -05:00
Mike Blumenkrantz e8e2002804 always set icccm wm state when calling related hints function
T773
2014-01-15 12:13:04 -05:00
Mike Blumenkrantz 51bcc9ad0f remove shadow from client icon drags
T776
2014-01-15 12:13:04 -05:00
Mike Blumenkrantz bd83ae044f add comp settings to configure registry
it's always been in the settings menu, but I forgot to put it into the registry.

T779
2014-01-15 12:13:04 -05:00
Carsten Haitzler 9fbb5def7f deskmirror - set scale factor nicely. 2014-01-15 20:13:47 +09:00
Sebastian Dransfeld 227072c553 randr: remove debug output 2014-01-15 07:06:14 +01:00
Sebastian Dransfeld 93cf4d877d randr: remove unused variable 2014-01-15 07:06:13 +01:00
Sebastian Dransfeld e215a3951e randr: Enable output from settings 2014-01-15 07:06:13 +01:00
Sebastian Dransfeld b140a13314 e_randr: rework 2014-01-15 07:06:13 +01:00
Sebastian Dransfeld ed520d31a1 e_acpi: Add function to get lid status
So we can know lid status without waiting for a lid event.
2014-01-15 07:06:13 +01:00
Mike Blumenkrantz 8491ceebc0 try locking new desklock interfaces on append if state == locked 2014-01-15 01:01:41 -05:00
Mike Blumenkrantz 51d111b3ee fix restacking on client lower 2014-01-15 00:09:33 -05:00
Mike Blumenkrantz cd4ed6f4e8 fix bgpreview dynamic updating
T771
2014-01-14 22:50:28 -05:00
Mike Blumenkrantz 9c65093cb4 unblock client lowering
T770
2014-01-14 22:40:18 -05:00
Mike Blumenkrantz 390b8a5bf5 feature: selective redirection toggling
this toggles redirection on compatible (X) clients while still mostly preserving window frame functionality
2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 70d65978c7 add "Enable advanced compositing features" option
this is what I'll be using to conceal various features in the future which should not be used without some understanding of what they do (OR FACE THE CONSEQUENCES)
2014-01-14 20:29:00 -05:00
Mike Blumenkrantz df0173d24c feature: support XPRESENT extension to reduce compositing overhead
xorg 1.15 introduces this extension which has a magical event to notify when a pixmap's size changes, which means that the size never needs to be manually fetched
2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 2ee8262ea5 block rendering while screensaver is active 2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 9c5509b236 add versioning to remembers to prevent badness when new properties are added 2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 56ae997976 deduplicate E_Remember edd
what if we weren't insane and didn't have the same exact code in 2 places?
2014-01-14 20:29:00 -05:00
Mike Blumenkrantz e54815a29f e menus no longer use comp shadows 2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 0943d9f7cc remove resize callback on gadcon parent
this sometimes gets called after the gadcon is deleted which leads to a crash
2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 6aedd4760d improve bgpreview widget to use livethumb with auto vsizing
this widget gets used in permanent locations now, so it needs to use less memory when possible
2014-01-14 20:29:00 -05:00
Mike Blumenkrantz 166ed0d234 feature: new focus option "raise on revert focus"
this option provides the functionality which was intended by the old and broken "raise on focus" option. it raises windows ONLY when reverting focus in cases not directly triggered by the user or any application
2014-01-14 20:28:59 -05:00
Mike Blumenkrantz c081cee34d remove e-specific theme config members 2014-01-14 20:28:59 -05:00
discomfitor 3b15315764 feature: add PIN-style desklock for lokker module
accessible from the normal screen lock dialog
2014-01-14 20:28:59 -05:00
Mike Blumenkrantz 235c369adf feature: make desklock hookable, break out current desklock into module, move pam stuff to separate file
after this commit, the new-but-invisible module "lokker" (or other custom loaded module) is in charge of creating all graphics for the lock screen, and it will be added to the user's config. failure to load a lockscreen module will just result in a black screen

desklock subsystem now handles all the pre/post lock stuff while the modules themselves are responsible for creating visuals and calling auth functions to determine whether to unlock the screen
2014-01-14 20:28:59 -05:00
discomfitor cb956069d5 feature: revive personal desklock passwords
these were previously disabled because hashing a password was too much work (I guess?), but now they're back. config dialog has changed accordingly
2014-01-14 20:28:59 -05:00
discomfitor bf7a2e8c47 add blocker rects for desklock
add a black rect to cover the screen during desklock
2014-01-14 20:28:59 -05:00
discomfitor a31e8a70fb break out desklock into display server-able hooks
if we're running in a non-X environment, we can't very well expect that using X calls to hide/show windows for desklock is going to work as expected. now a compositor backend can add a pre or post desklock hook to hide/show its clients as necessary
2014-01-14 20:28:59 -05:00
discomfitor a6a93c05b4 feature: function for getting top visible client on current desk
this is a pretty useful function overall, and I found that I was duplicating its functionality in a number of places, so I broke it out
2014-01-14 20:28:59 -05:00
discomfitor 3047ce85b8 not sure if keep... add retries for failure x clients
if a client's X attributes fail to be fetched on the first attempt, it's possible that we might succeed on a second attempt, which would prevent us from losing a client
2014-01-14 20:28:59 -05:00
Mike Blumenkrantz ed4c98f9f5 feature: e_comp_shape_queue_block for blocking shape changes
in some cases, it may be desirable to block shape cutting for an amount of time to reduce cpu calculations. this should be set when performing any non-interactive compositor effects
2014-01-14 20:28:59 -05:00
Mike Blumenkrantz b3ea9e9e9d feature: break out e_moveresize_client_extents for calculating client step sizes
if using an external moveresize implementation, this function is very handy
2014-01-14 20:28:59 -05:00
discomfitor b67d94210a feature: add layer_block client flag to bypass any layer/stacking checks and "just do it" for cool effects
this flag allows a client's layer to be changed instantly with no protocol-level checks or work, allowing compositor effects to do their work more easily
2014-01-14 20:28:59 -05:00
discomfitor 9150cf6812 feature: allow moveresize visuals to be replaced
the existing moveresize popup infrastructure is very limiting in that it requires you to create a popup. if you don't want to create a popup, now you don't have to.
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz b0c6366203 feature: allow desk flip animations to be handled completely externally
by exposing desk flip as a hookable api, it becomes easy to write custom flip effects such as in the external "desksanity" module
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz bac43480ff move deskmirror test over a little 2014-01-14 20:28:58 -05:00
Mike Blumenkrantz c667f7612f feature: E16-style live pager returns! window-only drags currently a little broken
p16 is a pager replacement module which uses deskmirror to show you live views of each desktop. it has a separate theme and reuses a lot of pager code.

not sure if original pager should be kept, but it's still around for now.

pager and pager16 both provide the same gadget and cannot be loaded simultaneously
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz b6e94d02ed don't recalc a gadcon on unpack if we're stopping, also don't recalc gadcons during stop when unpopulating
this caused a lot of slowdown, and even possible crashes, during restarts
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz a5e52cbc2d add E_Win_Cb typedef
this is mostly cosmetic, but I thought it might be a little more descriptive?
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz f637cbf08e deskmirror is now a fully-functional E api
* finish updating for E19 api

* fix visibility changing on sources

** use that shelf data item added in previous commit to detect shelf visibility

* fix sizing (but not scaling :() and positioning of sources

* also fix stacking
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz d307214c8d check for efreet desktop if EITHER icccm name/class is set
allows wayland clients, which only set class here, to find their desktop
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz 6bc7662459 add e_exec instances for wl clients if they set surface class: works for terminology
creating phony e_exec instances based on name/class allows wayland clients to show up normally in ibar
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz dcdf4bb9f9 don't delete pointers when changing settings, just update size
this fixes a case where cursors would be permanently broken (along with the world) when changing cursor settings
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz 5737103d67 wl pointers done-ish
pointers in E now come in two flavors, one for each protocol that we currently support. each is created from the owner compositor backend:

X pointers still work as usual

Wayland pointers are actually surfaces that we dump image data into periodically to render them as evas images

some small amounts of hack is necessary to make this work, namely blocking X pointers when a Wayland one is in use if we're running a multi-protocol compositor
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz a70e936be1 add E_WL_FORCE environment variable to force loading of an output module during init
variable takes the name of the output module s/wl_// ; example: E_WL_FORCE=x11

this module allows easy loading of a wayland output module to override any detection which may occur by force-loading the module during startup

in a later commit, an actual output detection mechanism needs to be added to run through all the possible output modes
2014-01-14 20:28:58 -05:00
Mike Blumenkrantz c268302e67 add wl_x11 output module
this is the first of the wayland output modules, and it is extremely simple as a result of the compositor rewrite. for any other wayland output modules, it should be enough to simply create an ecore_evas canvas and do startup in this way.
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 12d7405a0f huge wl fixup (wayland clients actually working again)
* try to clear up build system for separating out ecore-x

* add #ifdefs for lots of ecore-x stuff

* break out some internal e wl functions for reuse in api

* store wl surface buffers as an inlist

* add protocol-specific client compositor data

** move lots of X client attributes here

* add pixmap type checks to a number of X-specific things, such as grabinput, to block them for non-X clients

* rearrange startup order to work with wayland

* move X screensaver code to e_comp_x

* flag modules still requiring X with -DNEED_X
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 4d07ec2c00 remove black_ecore_evas
this was used in illume, which is now dead.
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 81bb88896e make backlight wayland-friendly 2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 7c580030db make e_hints more wayland-friendly 2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 0beaea217a remove awful LAYOUT client hook 2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 1be76d599c disable illume building, blacklist illume modules
illume 100% requires X, thus illume is dead. replacements are semi-underway.
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 1b22c40555 move e_util_icon_save to e_desktop_editor for better waylanding 2014-01-14 20:28:57 -05:00
Mike Blumenkrantz c2be19c093 feature: comp config is no longer a module
given that compositing is always enabled and that it's crucial to be able to change these settings, potentially having them unavailable is not a great way to live
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz b7b24dc283 set name/class on comp selection win, ignore comp selection win 2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 98f1a9f036 feature: E_FIRST_FRAME env variable
requested by cedric for profiling, works just like similar elm variable
2014-01-14 20:28:56 -05:00
Mike Blumenkrantz 8b6d217e0c set shelf data on shelf comp object
probably good practice to set object data to comp objects? this makes it easier to use with deskmirror
2014-01-14 20:23:06 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz 7f0c849a27 print E_IPC_SOCKET value during startup 2014-01-14 20:22:02 -05:00
Mike Blumenkrantz 33ae9d51e6 feature: add E_MODULE_SRC_PATH for setting current module src path without needing to install modules
this is a useful feature when working on and debugging modules so that contamination of the running system can be avoided
2014-01-14 20:22:01 -05:00
Mike Blumenkrantz e3c85ec4da feature: use non-recursive makefiles for entire build system
this is the correct way to write a build system. one toplevel Makefile.am with the rest of the directories having include Makefile.mk files.

additional authors:

Iván Briano <ivan.briano@intel.com>
2014-01-14 20:22:01 -05:00
Mike Blumenkrantz 52329d170e bad shape debugging! no enabling in git! 2014-01-10 13:26:37 -05:00
Mike Blumenkrantz d9291fffe1 send (un)focused signals to entry scrollframes
T745
2014-01-10 11:14:13 -05:00
Carsten Haitzler 72735615c7 resolve unhandled null shape pointer
in some cases cw->shape is checked, others not. chekc in all cases.
this should fix T742
2014-01-10 15:24:43 +09:00
Mike Blumenkrantz 40e947db15 bugfix: store opacity in remembers like we do in the other remember edd 2014-01-01 15:39:35 -05:00
Mike Blumenkrantz e0df6b9095 bugfix: only set uid for eeze mounting of disks which are not native linux fstypes
T484
2013-12-31 14:12:24 -05:00
Carsten Haitzler 63a49e4dca comp - make message for missing gl a bit more helpful 2013-12-31 19:05:41 +09:00
Carsten Haitzler 00050ffca8 livethumb - fix problem where e canvas list didnt del the livethumb ee 2013-12-30 17:00:29 +09:00
Mike Blumenkrantz 28b157c385 bugfix: startup splash now updates the version number more reliably
e_init_show() sets its own strings now so they get set on existing objects instead of failing silently
2013-12-26 22:29:29 -05:00
Mike Blumenkrantz a00b8354b5 bugfix: infinite printing of SLEEP with release build
T690
2013-12-24 20:52:59 -05:00
Mike Blumenkrantz bd6bbdd5f4 only set mouse-in focus if target window is not already the focused window
T483 again
2013-12-20 15:50:16 -05:00
Mike Blumenkrantz d216853252 when rolling back an efm_op task, also remove children tasks
this simplifies/fixes the case where copying directories and canceling the operation would not correctly propagate the cancel to subtasks (contents of the directory)

T680
2013-12-19 14:56:34 -05:00
Mike Blumenkrantz c2c9c3ab72 propagate parent tasks when creating work tasks from scan tasks 2013-12-19 14:55:53 -05:00
Mike Blumenkrantz b93c035176 set efm_op parent tasks when creating new scan tasks for a directory 2013-12-19 14:55:23 -05:00
Mike Blumenkrantz f9c16ba1ce separately calling eina_init after ecore_init in e_fm_op? wtfffffffffffffffffffffffffffffffff 2013-12-19 14:18:02 -05:00
Mike Blumenkrantz f6ec2c6f60 set ecore_app_no_system_modules in various system utilities 2013-12-19 14:14:48 -05:00
Mike Blumenkrantz d4fe53e2ce check smart data on efm rename dialog delete 2013-12-19 13:56:38 -05:00
Mike Blumenkrantz 428d2adb00 errr...new desklock variable is meant to be !checked to see if the user has ever successfully unlocked 2013-12-19 11:00:28 -05:00
Mike Blumenkrantz cc9c130c24 clean up desklock showing on startup, add env var for checking unlocked state
desklock's layer is below the start splash layer, so this can just be shown any time regardless of whether it's enabled. security++

previously the fact that e was restarting could break out of desklocked startup due to how the env variables were set. now there is a new variable which only gets set when the screen is locked which will force lock on startup even during restarts

T681
2013-12-19 10:55:56 -05:00
Cedric BAIL 56d9c12676 gdb: test for bad kernel behavior. 2013-12-19 17:11:13 +09:00
Cedric BAIL 147f088efa gdb: detect that the file was generated properly.
This is a workaround kernel that prevent ptrace to another process.
2013-12-19 16:39:46 +09:00
Cedric BAIL fd271ba0c8 gdb: don't forget to turn on file logging to get anything useful. 2013-12-19 16:17:59 +09:00
Mike Blumenkrantz 292bcf6e81 only allow backlight to go to 0.1, not 0.0
on some backlight devices, 0.0 is completely off, which can render the system unusable.

T651
2013-12-17 11:22:56 -05:00
Shawn Lee 7c2d0c7bdd fix - enlightenment could be fell in infinite loop in e_border_focus_set().
Reviewers: seoz, zmike

CC: cedric, raster

Differential Revision: https://phab.enlightenment.org/D382
2013-12-15 13:33:00 -05:00
Mike Blumenkrantz 7435381907 only clip shelf object to zone if shelf is not a popup
T629
2013-12-13 09:09:56 -05:00
Mike Blumenkrantz ec484b1317 force unmount/eject on udisks2 filesystem removal, also remove undocumented fixme from seb
T432, T398
2013-12-12 10:43:30 -05:00
Mike Blumenkrantz 0c2d21558f fix a magnificent typo in my last commit 2013-12-10 15:37:57 -05:00
Mike Blumenkrantz a7d1a4588e only revert focus to a sticky window on desk flip if there's no other window to revert to
T625
2013-12-10 15:36:28 -05:00
Mike Blumenkrantz b0854dedd1 remove unused variable 2013-12-10 15:36:28 -05:00
Mike Blumenkrantz caa41d0c7c force hide of new shelves when not visible 2013-12-10 15:36:28 -05:00
Sebastian Dransfeld ae8a067e6d e: Check whether allocation succeeds
CID 1039865
2013-12-10 20:37:17 +01:00
Sebastian Dransfeld 06a85fca4d e: check for NULL value in parameter
CID 1040146
2013-12-10 20:35:45 +01:00
Sebastian Dransfeld e818c83322 e: ignore signals with no signal
A signal needs a name to be handled.

CID 1040147
2013-12-10 20:31:26 +01:00
Sebastian Dransfeld 43a4f21e06 e: double paranthesis as gcc suggests
Since we assign and check for true value in one operation, use double
paranthesis.
2013-12-10 20:30:15 +01:00
Sebastian Dransfeld 5820112ba3 e: remove un-needed NULL check.
bdname = params, which is already checked

CID 1039830, 1039831
2013-12-10 20:19:46 +01:00
Sebastian Dransfeld d5853ddc2c e: Check for error reading lid status 2013-12-10 20:15:21 +01:00
Mike Blumenkrantz d985b01aa9 check efm queued icons when trying to live delete a file to ensure the icon is deleted
T633
2013-12-10 12:19:20 -05:00
Mike Blumenkrantz 09c3cd4ba9 only set bd->destroyed when window is actually destroyed
T617.1
2013-12-10 11:03:00 -05:00
Mike Blumenkrantz da931928e1 Revert "improve efm mouse move detection (no more tooltips when cursor is in separate window)"
This reverts commit db72a84e58.

this whole idea was broken. I blame the british food/water/oxygen/etc. it broke click renaming and all kinds of other things. changing the edc (in latest elm/1.8) is a much better and more effective solution
2013-12-10 10:16:27 -05:00
Mike Blumenkrantz a61786b7a7 Revert "restack event rect for efm...always"
This reverts commit 5bacb5dfc3.
2013-12-10 09:23:18 -05:00
Mike Blumenkrantz ef1b4e3d9d Revert "clip efm icon event rect"
This reverts commit cee520ff75.
2013-12-10 09:22:35 -05:00
Mike Blumenkrantz 3c514097ae Revert "unify efm icon positioning code"
This reverts commit 479bb201e3.
2013-12-10 09:22:22 -05:00
Mike Blumenkrantz a366561336 Revert "ensmallen efm icon event area"
This reverts commit b7fb8e7f8d.
2013-12-10 09:22:11 -05:00
Carsten Haitzler b6f25509b0 efm - pass events on icons. just say NO. it breaks them. 2013-12-10 20:59:06 +09:00
Carsten Haitzler 98e5035957 backlight - companion backlight fix patch actually changes config level
goes with 9ce8d91f6d.
2013-12-10 08:42:04 +09:00
Mike Blumenkrantz ec156f71aa set pass events on efm icon objects
we don't get events from the theme any more, so ensure that edje isn't grabbing events randomly

T377
2013-12-09 17:38:01 -05:00
Carsten Haitzler 9ce8d91f6d backlight - save after actions change backlight too. 2013-12-09 21:52:46 +09:00
Carsten Haitzler 835a3dfac6 comp - remove sync support in comp - it should be off by default anyway.
this was never a great idea, and it has too many buglets in corner
cases (eg window resizing) so remove it. simpler is better.
2013-12-09 20:43:35 +09:00
Carsten Haitzler 0ec99b2ac5 gdb crashdump - restore old e_sys magic into e_start 2013-12-09 19:51:24 +09:00
Sebastian Dransfeld 5ca535383f e: handle e_util_head_exec display env
Clean up the code to set DISPLAY env so it is safe and correct.
2013-12-08 22:46:12 +01:00
Carsten Haitzler 65a1ed752e comp - disable grab by default due to it causing erratic rendering
so i found something interesting. the grab option causes some erratic
framerate in clients IF thoise clients have to sync to the xserver and
themselves try and render more smoothly. it masically means animators
get delayed due to unusually long render times because of this. this
fixes that. this also adds a comp config version number allowing the
code to upgrade a users config to turn this off and thus allows for
future upgrades too.
2013-12-08 14:46:19 +09:00
Sebastian Dransfeld e5300734dc Find correct border under pointer
Previously we would find the first border and then break. Now we find
the border with the highest layer, as the code intended.

Fixes CID 1039952
2013-12-07 22:28:01 +01:00
Sebastian Dransfeld e781a9b68e It is correct to fall through here
Add comment and remove coverity error
2013-12-07 22:23:39 +01:00
Sebastian Dransfeld 8b198d77f5 bd->zone is always set
lots of code always assume it is set, so no need to be paranoid
2013-12-07 22:21:31 +01:00
Sebastian Dransfeld e891ac7c16 Remove assignment to unused variable
p isn't used after this, so no need to assign it.

Fixes CID 1039757
2013-12-07 22:13:37 +01:00
Sebastian Dransfeld fcc82e3e34 Fix 03d50e9546
If this ever worked it's a miracle. remember_sigill is initialized for
each loop, so it can't remember anything.

Fixes CID 1039950
2013-12-07 22:09:49 +01:00
Sebastian Dransfeld 139153cf2c Initialize siginfo_t
If we don't run the ptrace below, siginfo_t should be initialized.

Fixes CID 1039767
2013-12-07 21:59:56 +01:00
Sebastian Dransfeld 0c4131d1be Use strncpy instead of strcpy
Even though a user has to be stupid to trigger this, strncpy should be
used if not to much hassle :)
2013-12-07 21:47:42 +01:00
Sebastian Dransfeld 7542ddef4c break out of while, not return
No change in functionality

Fixes CID 1039946, 1039948 and 1039949
2013-12-07 21:39:30 +01:00
Sebastian Dransfeld 0e5e0ec218 reduce indent level 2013-12-07 21:33:16 +01:00
Sebastian Dransfeld 05f00710f2 Check return value from mkdir
If mkdir fails, no need to stat.

Fixes CID 1039963
2013-12-07 21:32:11 +01:00
Mike Blumenkrantz 25ab377291 unbreak menu dnd 2013-12-06 11:44:45 -05:00
Carsten Haitzler 9456e88504 e_sys - fix busy spin problem with security clamp-down 2013-12-06 09:19:08 +09:00
Mike Blumenkrantz 7a8ad8080e finally fix bug where gadgets on shelves would randomly reorder during drags
ticket #everydamngadgetticketevercreated
2013-12-05 12:27:46 -05:00
Mike Blumenkrantz a0edbd69b0 don't try to apply gadcon container geometry when injecting
fixes case of gadgets dragged onto a shelf always going to the right side

ticket #jpeg
2013-12-05 12:24:50 -05:00
Mike Blumenkrantz ed6bfb1955 subtract zone position from initial gadcon client drag coordinates
T369
2013-12-04 23:09:12 -05:00
Mike Blumenkrantz c49d5eea96 remove more calls to useless gadcon function 2013-12-04 23:08:50 -05:00
Mike Blumenkrantz 0b6ec2d07a move and unify a gadcon drag block 2013-12-04 23:06:57 -05:00
Mike Blumenkrantz 84cb16cf8f remove call to useless gadcon function 2013-12-04 23:05:50 -05:00
Mike Blumenkrantz 842d830c39 remove ability to alter gadgets in EFM toolbars
this whole site as a "fully functioning gadcon" is pretty broken (by design), and it's not worthwhile to fix it at this point
2013-12-04 12:21:22 -05:00
Carsten Haitzler 59080c6752 bump randr settings up 1 more epoch for e18 release
bump to epoch 3 (version 1 again) so that an e17.6 release can bump
version up but then e18 bump it up again.
2013-12-03 16:56:59 +09:00
Mike Blumenkrantz b7fb8e7f8d ensmallen efm icon event area
previously it was impossible to click between icons. now it is.

T377
2013-12-02 16:18:05 -05:00
Mike Blumenkrantz 479bb201e3 unify efm icon positioning code 2013-12-02 16:14:22 -05:00
Mike Blumenkrantz 0ba6584994 move dnd input window free to drag free function
fix T542 and other cases where dnd operations could permanently break mouse input
2013-12-02 09:06:20 -05:00
Mike Blumenkrantz 85480938cd raise fullscreen borders before entering nocomp 2013-12-01 17:27:40 -05:00
Mike Blumenkrantz bcabf5fdd3 add more borderless checks for shape cutting to catch weirdly-set borderless windows
ticket #onefang
2013-12-01 11:58:58 -05:00
Mike Blumenkrantz b3bc99d1b2 fix menu race condition crash related to screen edges
previously, this conditional would be called on most new submenus, even if the submenu's parent item was the previous item and its menu hadn't been set yet. hours of small mouse movements revealed that this should never be called when the parent item has not yet been set
2013-12-01 11:32:11 -05:00
Mike Blumenkrantz 63f9ddcbb0 improve upgrade path for removal of raise on focus option 2013-12-01 10:19:59 -05:00
Carsten Haitzler 666df815cd e_sys - address security concerns with environment - more
add more environment variables to nuke and add alternate envrionment
nuke method to raise security level.
2013-12-01 11:50:51 +09:00
Carsten Haitzler bb4a21e986 e_sys - address security concerns with environment and gdb
1. clear out environment as best is possible before executing
anything. especially PATH and IFS are set to minimal base defaults.
also use clearenv() if available and unsetenv()

2. remove gdb method as it's just too dangerous. run it as normal as
the user and if the kernel / distro dny that - then sorry. too bad.
2013-11-30 22:26:30 +09:00
Mike Blumenkrantz 1c0de40ccc remove an old case of "raise on focus" from focus revert 2013-11-29 11:58:39 -05:00
Mike Blumenkrantz 6ccc845a23 only unset comp_hidden on windows after desk flips if the window is not shaded
ticket #onefang
2013-11-28 11:02:02 -05:00
Mike Blumenkrantz da6f94a975 only change a window's vdesk when getting window profile if the current desk does not have the required window profile
ticket #onefang
2013-11-28 09:56:08 -05:00
Mike Blumenkrantz cd7a0e6b64 simplify code for moving windows to other desks: add effect unclipping to e_border_desk_set 2013-11-28 09:43:20 -05:00