Commit Graph

14832 Commits

Author SHA1 Message Date
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 7aaeeab3c3 fix aspect of pagewr16 to more closely match real screen
this wasn't strictly necessary in pager but pager16 needs it to not
squash content badly
2014-02-06 01:48:43 +09: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 ee47265649 more distcheck fixes
not sure how distcheck didn't fail before...
2014-02-04 13:55:58 -05:00
Mike Blumenkrantz 270ecccfad bugfix: building non-default modules from dist no longer fails
T869
2014-02-04 10:54:11 -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
Davide Andreoli bf33f34b4c PackageKit: split config stuff to a proper e_mod_config.c file.
No functionan changes with this commit.
2014-02-03 22:21:25 +01:00
Davide Andreoli 0d0907ec2a PackageKit: fixed icon state for newly created gadget.
This fix the case where a new (not the first) gadget is added.
Previously you have to restart e to show the correct state.
2014-02-03 21:37:43 +01: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
Carsten Haitzler fc83914c51 packagekit - update icon 2014-02-02 16:15:19 +09:00
Carsten Haitzler 60784e85ec pkgkit - when running the command, provide the zone so there is context 2014-02-02 10:28:46 +09:00
Davide Andreoli 1e07f20cf1 packagekit: warnings-- 2014-01-31 22:15:01 +01: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 59d6581f57 use popup style for pager16 popups
now that this is no longer transparent, not having a shadow by default is odd
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
Carsten Haitzler 61aa61651c ibox/ibar/tasks iconify effect - don't do it if target is not on same screen 2014-01-30 07:45:02 +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
Mike Blumenkrantz 6523f283a6 fix pager popup delete timer
T871
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 5ce5fc3918 tasks - add iconify provider 2014-01-29 22:42:54 +09:00
Carsten Haitzler df575ea51a ibar - add iconify provider 2014-01-29 22:42:54 +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 d09e8af4f3 set layer on pager popup 2014-01-28 11:01:57 -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 3aa7a32618 bugfix: use config_type to set parent profile when resetting bindings
I added this a long time ago to fix binding resets and forgot to add the support in to binding resets. genius.

T642
2014-01-27 11:25:24 -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 83a009c685 only block fileman zone refocus if top client is not ignored
T854
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