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