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