Sebastian Dransfeld
ff750b2bb9
randr: add match for refresh rate
...
Store output config with refresh rate, so we don't just get correct
geometry for outputs.
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld
f32426878c
randr: common function for fetching output name
...
Add a common function to get output name, and also check edid if no name
is set by randr.
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld
82e7d1184c
randr: remember crtc in output struct
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld
2b4a70b283
randr: remove wrong typedef
...
There is no struct for crtc config
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld
5c6eed2307
randr: allocate hot-plugged outputs
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld
11e21fd1ff
randr: allocate hot-plugged crtcs
2014-03-06 15:18:14 +01:00
Sebastian Dransfeld
8b5153130a
randr: Use already fetched root window
2014-03-06 15:18:14 +01:00
Mike Blumenkrantz
63b01101ee
fix comp util object initial visibility
2014-03-05 10:53:05 -05:00
Mike Blumenkrantz
851ef43c41
force comp render on dirty for hidden objects with visible mirrors
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz
8b4162d681
fix maximization geometry on desks with shelves
...
in some cases during startup a client can get post-maximize geometry before the sizing algorithm is applied
fix T1052
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz
ee6b8e8c38
simplify maximize shelf fill visibility check
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz
267966834f
fix deskmirror visibility for re_manage previously-iconic clients
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz
f82351d3e2
reset client urgency on focus-out and iconify
2014-03-05 10:08:09 -05:00
Mike Blumenkrantz
9ad04eb877
redo client urgency again with separate flag for actual urgent state
...
preserve icccm flag for accurate detection
2014-03-05 10:08:09 -05:00
Stefan Schmidt
58286beed4
e_comp_wl: Remove unused variable.
...
Later on we use state_w directly.
2014-03-05 13:41:35 +01:00
Mike Blumenkrantz
8568a76313
always set iconic client comp state as visible
...
pass: init_states
2014-03-04 15:20:24 -05:00
Mike Blumenkrantz
5241140dd2
don't run client visibility idler updates for iconic clients
2014-03-04 15:20:24 -05:00
Mike Blumenkrantz
7b44add514
redo iconic setting for new clients
2014-03-04 15:20:24 -05:00
Mike Blumenkrantz
043a3c17e0
fix some enum decls
2014-03-04 15:20:24 -05:00
Carsten Haitzler
5c8710ded3
fix screen blanking while fullscreen window is up - work again
...
@fix - this fixes T1019 - when a window is fullscreen the display just
NVER can blank no mater what. it's hrdcoded, and wrong to enforce. if
an app wants to display screensaver - there is the xscreensaver extn -
or maybe supporting an explicit property on a window would work
better, but just equating fullscreen == never blank is wrong. it's an
option now. off by default.
2014-03-01 08:04:09 +09:00
Mike Blumenkrantz
e77d536466
remove comp override immediately on screensaver disable
2014-02-28 15:27:35 -05:00
Mike Blumenkrantz
41c4cded01
send unmaximize signal when unfullscreening
...
fix T1044
2014-02-28 14:55:27 -05:00
Mike Blumenkrantz
54999472de
force full rerender on present pixmap size change
...
a new X extension should make this unnecessary in the future for pixmap resizes, but for now it seems to be a necessary evil
fix T993
2014-02-28 10:48:54 -05:00
Mike Blumenkrantz
c720451933
force client urgency unsetting on focus
...
fix T1016
2014-02-27 21:05:33 -05:00
Mike Blumenkrantz
6555daf56d
correctly set keygrab flag on renaming efm icon to not permanently break input
2014-02-27 20:51:02 -05:00
Mike Blumenkrantz
78403e2f54
don't reshadow on client redirect
...
fix T1019
2014-02-27 20:31:18 -05:00
Mike Blumenkrantz
6abcb5f946
save efm rename focus hook pointer
2014-02-27 20:26:16 -05:00
Mike Blumenkrantz
c01a1fcc6c
manage comp overrides for comp objects
...
fix T1019
2014-02-26 11:46:32 -05:00
Mike Blumenkrantz
def17d763b
+e_comp_util_object_is_above_nocomp()
2014-02-26 11:46:32 -05:00
Mike Blumenkrantz
6a90f66cc4
use comp overrides when grabbing comp input
2014-02-26 11:46:31 -05:00
Mike Blumenkrantz
7604e7a6f7
use one comp override per comp, not per zone, when toggling screensaver fading
2014-02-26 11:46:31 -05:00
Mike Blumenkrantz
a331627e09
reduce comp override pop timer, successive pops trigger instapop
2014-02-26 11:46:31 -05:00
Mike Blumenkrantz
a52ede0c66
track current nocomp client
2014-02-26 11:46:31 -05:00
Mike Blumenkrantz
a22181c0da
allow nocomp on some overrides
2014-02-26 11:46:31 -05:00
Mike Blumenkrantz
ef26b0fb1e
set client-redirected on overrides
2014-02-26 11:46:31 -05:00
Daniel Kolesa
79f3313931
e_comp_x: reverted 7c20b54
(was fixed in the meantime and i didn't notice)
2014-02-25 20:30:45 +00:00
Daniel Kolesa
7c20b5407a
e_comp_x: check for zone before actually using it
2014-02-25 20:16:15 +00:00
Mike Blumenkrantz
b7f4686d00
e_object zone warning--
2014-02-25 14:44:05 -05:00
Daniel Kolesa
6085d79df8
e_client: build fix
2014-02-25 19:40:37 +00:00
Mike Blumenkrantz
eca0549238
only set atoms for zone geometry for non-ignored clients
...
another T787 crash
2014-02-25 14:38:08 -05:00
Carsten Haitzler
0313a54da4
e-object-check - this has been turned off since 2007 - back on
...
this is crazy. all the E_OBJECT_CHECK macros have been off since 2007.
this is just nuts. either remove them, or have them on by default, but
not off. so this turns them back on and fixes code to actually compile
again with them on, as this broke over the years. a lot of code
expects/assumes thatthese willcheck types and null ptrs, but they
don't because they are off by default.
2014-02-26 04:28:12 +09:00
Mike Blumenkrantz
9395553039
don't reset ignored clients on canvas update
...
part of T787
2014-02-25 09:46:41 -05:00
Sebastian Dransfeld
43aed04241
randr: check NULL before dereference
...
Fixes CID 1181926
2014-02-24 09:17:25 +01:00
Mike Blumenkrantz
c4a9adebc8
bugfix: don't use raise stack for iterating clients
...
T914
2014-02-21 17:53:14 -05:00
Mike Blumenkrantz
b92fb1af3e
fix visibility checks for shelves in client smart placement
2014-02-21 17:44:02 -05:00
Mike Blumenkrantz
d6c037ff30
fix maximize size calculation on non-current desks with shelves
2014-02-21 17:19:02 -05:00
Mike Blumenkrantz
21d9b84c53
force resizing when changing desk on same screen
...
this normally happens in zone_set
2014-02-21 17:19:01 -05:00
Mike Blumenkrantz
5857bd32e5
fix e_maximize_client_shelf_fill() to account for all shelves
2014-02-21 17:19:01 -05:00
Mike Blumenkrantz
33370022af
deskmirror now handles border theme changes
2014-02-21 17:19:01 -05:00
Mike Blumenkrantz
4cb130e25b
break out deskmirror frame setup into helper function
2014-02-21 17:19:01 -05:00
Mike Blumenkrantz
e86dc53ddc
feature: per-screen desklock logo visibility config
...
T613
2014-02-21 17:18:57 -05:00
Mike Blumenkrantz
0e66cdda82
only move/resize non-override internal clients during eval
...
T1007
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
bf47dcdb79
cancel efm rename operation on focus change
...
T987
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
25907a9f60
use comp grab functions consistently for efm grabs
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
96092f5f04
efm shouldn't accept file renames when selecting another file
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
f75a923ab0
break out client focus reset into separate function
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
4bf4fb69ed
check focus reset after comp input ungrab
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
63d6153d86
reject comp autoclose refocus during comp input grabs
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
88831252c8
use current desk when unsetting client sticky property
...
T989
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
aec20f1420
force full render on present events during startup
2014-02-21 16:44:12 -05:00
Mike Blumenkrantz
71bfe06bb3
fix debug format string
2014-02-21 16:44:11 -05:00
Mike Blumenkrantz
1a3e86c3c9
fix race condition when repeatedly resizing clients too fast
...
T993
2014-02-21 16:44:11 -05:00
Carsten Haitzler
22369ffc7b
ensure that the bg object exists before emitting signals in e_desk_show()
2014-02-21 09:34:25 +09:00
Mike Blumenkrantz
0bd9052c7e
better fix for exec client removal: don't remove if exec is deleted
2014-02-18 06:56:54 -05:00
Mike Blumenkrantz
fba7100590
fix client menu layer checks
...
T984
2014-02-18 06:45:20 -05:00
Mike Blumenkrantz
37c1345aa1
fix crash when repeatedly opening multiple client menus
2014-02-17 17:30:15 -05:00
Mike Blumenkrantz
ef360e1684
resize damage tiler on resize
...
this fixes render races which occur when damages and resizes happen in quick succession
2014-02-17 19:11:33 -03:00
Mike Blumenkrantz
14c7e58a29
improve infos for e_comp_util_wins_print()
2014-02-17 19:11:33 -03:00
Mike Blumenkrantz
b317bedf5a
remove comp object dirty flag
...
this logic was useful for another issue which has since been fixed. it currently only serves the purpose of triggering a race condition crash which I do not enjoy.
2014-02-17 16:21:02 -03:00
Mike Blumenkrantz
4c2db4342a
bugfix: unref client when removing from exec if exec is deleted
...
fixes a race condition where client would never be freed when closing lots of windows simultaneously
2014-02-17 16:21:02 -03:00
Sebastian Dransfeld
60483a11a0
randr: split config and current setup
...
This is so the current config does get changed unless the user requests
it, and makes it possible to have several configs.
2014-02-17 08:44:56 +01:00
Mike Blumenkrantz
7423b5cac1
really fix deskmirror sticky+hidden client handling
...
quickaccess...
2014-02-15 01:32:07 -05:00
Mike Blumenkrantz
025e0b7565
show hidden clients in deskmirror when in pager or taskbar mode
2014-02-15 01:25:21 -05:00
Mike Blumenkrantz
9419f687aa
make e_win delete callback less recursive-prone
2014-02-14 15:49:49 -05:00
Mike Blumenkrantz
e6fa8f3176
don't unfullscreen clients if:
...
* iconic
* hidden (desk flipped)
* not on current zone
T920
2014-02-14 15:08:23 -05:00
Mike Blumenkrantz
bbf29c6a2a
only set want_focus for non-hidden clients when deferring focus setting
...
T950
2014-02-14 14:56:16 -05:00
Mike Blumenkrantz
46a715db35
hidden clients should be hidden in deskmirror
2014-02-14 14:46:07 -05:00
Mike Blumenkrantz
8df52a1f22
don't create remembers for ignored clients
2014-02-14 14:40:16 -05:00
Mike Blumenkrantz
96316e2969
bugfix: no more crashing when deleting entry widgets
2014-02-14 14:12:12 -05:00
Mike Blumenkrantz
494e6bc5ee
another revision for client geometry resets: take new geometry instead of ignoring it
2014-02-14 13:43:15 -05:00
Mike Blumenkrantz
1c82215eaa
force client changes when calling e_win geometry functions
2014-02-14 13:42:49 -05:00
Mike Blumenkrantz
208e7e17bc
bugfix: adding/changing comp match window types is now possible
2014-02-14 13:05:17 -05:00
Mike Blumenkrantz
92c7ec1dad
DOCKs should actually be "none" so they don't get shadows
2014-02-14 13:05:00 -05:00
Mike Blumenkrantz
9d9ee6c33b
add default comp match for DOCK window types
2014-02-14 12:46:53 -05:00
Mike Blumenkrantz
c7cf99ba45
bugfix: comp match adding once again functional
2014-02-14 12:41:34 -05:00
Mike Blumenkrantz
09cb41f1dc
only reset move/resize attempts if the pending move/resize is different than the current one
2014-02-13 22:46:48 -05:00
Mike Blumenkrantz
d80dbc1a35
add maximize_override client flag
...
sometimes you just want to do stuff on a client without any maximize logic applying!
2014-02-12 20:37:52 -05:00
Mike Blumenkrantz
aa37188e02
add maximize_pre and unmaximize_pre smart callbacks
2014-02-12 20:37:39 -05:00
Mike Blumenkrantz
7571ccb2d8
reapply geometry and unset post flags when a client intercept gets the current geometry
2014-02-12 19:50:50 -05:00
Mike Blumenkrantz
0b2e3ea2e3
add unmaximize_done client smart callback
2014-02-12 19:50:17 -05:00
Mike Blumenkrantz
82faa72a45
move maximize_done client smart callback to the end of maximize
2014-02-12 19:49:58 -05:00
Mike Blumenkrantz
0d2945149a
client signal actions are not mouse actions
...
mouse actions have a different end path which causes pointer popping to not occur
T913
2014-02-12 12:06:13 -05:00
Mike Blumenkrantz
1f534c3b32
set client move/resize vars in time for client hooks
2014-02-12 11:50:00 -05:00
Carsten Haitzler
3e17092db8
fix segv with comp post_updates
...
if we keep a list of e clients... either make sure any client deleted
is removed from the list on deletion... OR use ref/unref to ensure it
stays alive as long as it's in the list.
2014-02-12 12:34:28 +09:00
Mike Blumenkrantz
6802ae750d
send smart object to comp effect end cb
2014-02-11 22:29:34 -05:00
Mike Blumenkrantz
449ec43d1f
size comp zoomap child to pixmap, not client
...
this affects nothing
2014-02-11 21:45:04 -05:00
Mike Blumenkrantz
57f0bf6429
fix zoomap alpha setting
...
doesn't affect anything right now, but someday...
2014-02-11 21:43:54 -05:00
Mike Blumenkrantz
5a14f9f00e
unset client.saved after unmaximize callback
2014-02-11 19:28:25 -05:00
Mike Blumenkrantz
3f5b5b03b2
call unmaximize smart callback for all unmaximizes, fix client sizing on directional unmax
2014-02-11 19:01:36 -05:00
Mike Blumenkrantz
ffe5670b39
add "maximize_done" smart callback for clients
2014-02-11 18:48:56 -05:00
Mike Blumenkrantz
e564187759
hook shadow_change smart callback to fix deskmirror shadows without crashing constantly
2014-02-11 18:48:14 -05:00
Mike Blumenkrantz
adb398b6be
Revert "fix pager16 shadow inconssistency"
...
This reverts commit c91840ea54
.
2014-02-11 18:42:17 -05:00
Mike Blumenkrantz
2fd21db5e0
Revert "fix deskmirror crash from c91840ea54a398f56a513a9d02608f323d7e8f65"
...
This reverts commit 6221fb7c90
.
2014-02-11 18:42:06 -05:00
Mike Blumenkrantz
c3ce56c1dc
it's possible that a comp effect has no post-effect callback
2014-02-11 18:40:22 -05:00
Mike Blumenkrantz
bf48616a47
remove shadow check from shape apply
2014-02-11 18:40:02 -05:00
Mike Blumenkrantz
d9be56ad41
add smart callback on comp object for shadow change
2014-02-11 18:39:51 -05:00
Mike Blumenkrantz
6221fb7c90
fix deskmirror crash from c91840ea54
...
T941
2014-02-11 18:31:06 -05:00
Carsten Haitzler
ed5f83ab0b
fix probably NULL ic segv cause in efm
...
this SHOULD fix T933 if i could ever reproduce it...
2014-02-11 14:49:23 +09:00
Mike Blumenkrantz
0291edd719
hook STICKY client property change in deskmirror
...
T936
2014-02-10 20:14:59 -05:00
Mike Blumenkrantz
29cd45142a
remove E_EVENT_CLIENT_(UN)STICK, use E_EVENT_CLIENT_PROPERTY & E_CLIENT_PROPERTY_STICKY
2014-02-10 20:10:38 -05:00
Mike Blumenkrantz
e895d86839
set comp mirror alpha the same way as objects
...
T928
2014-02-10 09:54:01 -05:00
Mike Blumenkrantz
722b18de9a
set precise_is_inside based on shaped || shaped_input
2014-02-10 09:48:13 -05:00
Mike Blumenkrantz
e7127a93ff
don't set input shape differently on shaped_input clients
...
T931
2014-02-10 09:45:53 -05:00
Mike Blumenkrantz
a78d98700a
apply shadow states during theme setup
...
T885
2014-02-10 09:12:43 -05:00
Mike Blumenkrantz
e105c10d80
client shadow check with argb windows now returns based on frame state
...
T929
2014-02-10 09:12:28 -05:00
Carsten Haitzler
c91840ea54
fix pager16 shadow inconssistency
...
fixes T930
2014-02-10 12:21:27 +09:00
Mike Blumenkrantz
c47a7e9b8f
improve _e_client_move_begin():
...
* set ec->moving before MOVE_BEGIN hook
* remove comp grab on failure
* only raise if move succeeds
2014-02-07 14:29:07 -05:00
Mike Blumenkrantz
86d92adba6
set ecresize in e_client_resize_begin()
2014-02-07 14:24:37 -05:00
Mike Blumenkrantz
2817bf025b
more e_client_resize_begin() improvements: remove comp grab on failure
2014-02-07 14:23:55 -05:00
Mike Blumenkrantz
dab9f9eb3c
don't double unset resize_mode on e_client_resize_begin() failure
2014-02-07 12:04:06 -05:00
Mike Blumenkrantz
e68837c1d6
e_client_resize_begin() fixes
...
* make return value accurate
* unset resize_mode on failure
2014-02-07 12:01:12 -05:00
Mike Blumenkrantz
059870b970
layer setting on overrides during client_new wasn't a placeholder, just using the wrong value
...
T908
2014-02-07 09:23:50 -05:00
Mike Blumenkrantz
b97d043b25
assume that if we can't find a requested stacking client (X) it's going to be at the top of the stack
...
T908
2014-02-06 21:46:12 -05:00
Mike Blumenkrantz
9356644acc
set shelves to lowest object on layer
2014-02-06 21:43:40 -05:00
Mike Blumenkrantz
6524711e68
set comp theme object shadow state to off during setup
...
T907
2014-02-06 20:52:31 -05:00
Mike Blumenkrantz
446eb19653
use regular edje signal emit on regular edje objects
2014-02-06 20:51:58 -05:00
Mike Blumenkrantz
f71c85b509
feature: check udisks1 DevicePresentationHide flag
...
from D505
2014-02-06 13:15:41 -05:00
Mike Blumenkrantz
78334b615e
more stringshare improvements for window profile, apply window profile if no desk set (impossible?)
2014-02-06 12:59:28 -05:00
Mike Blumenkrantz
442f3904ed
remove unused var
2014-02-06 12:55:49 -05:00
Mike Blumenkrantz
ea7c0c3dcd
improve stringshare use in e_client_desk_set
2014-02-06 12:52:48 -05:00
Mike Blumenkrantz
7b5257530a
specify that E_Desk string members are stringshared
2014-02-06 12:39:09 -05:00
Mike Blumenkrantz
793b6ff319
improve stringshare use for e_desk window profile and name
2014-02-06 12:38:59 -05:00
Mike Blumenkrantz
c8ba69e3bf
gadgets now delete the right menu when menu is deactivated
...
T906
2014-02-06 12:33:39 -05:00
Mike Blumenkrantz
1b7b765ee4
bugfix: race condition when deleting clients and their e_exec
...
this occurred occasionally when a client was the last one on a phony exe
2014-02-05 20:52:55 -05:00
Mike Blumenkrantz
3499f454bd
fix signal callback deletion in comp effect start
2014-02-05 20:52:20 -05:00
Mike Blumenkrantz
a3fbcc339b
Revert "Revert "Revert "e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses"""
...
This reverts commit 91b3f2e0e1
.
revert wars part 4: the blizzard blitz!
the main point of freezing idlers here was not, in fact, to optimize, but to block an infinite loop which pegged the cpu until screensaver ended. this solution should be less issue-prone for the one person who had issues with the previous fix.
2014-02-05 13:22:42 -05:00
Mike Blumenkrantz
a16f820f95
only ignore protocol stacking if comp object is on a different layer
2014-02-05 13:05:05 -05:00
Mike Blumenkrantz
66325b2207
Revert "stop crash on accessing ec->desk if its null"
...
This reverts commit c3791d6b43
.
this is a workaround which prevents the underlying bug from being fixed.
2014-02-05 12:47:03 -05:00
Carsten Haitzler
7a3a81b144
bgpreview - fix sizing to not overrun bounds - fixes wallpaper in pager16
2014-02-06 01:18:16 +09:00
Carsten Haitzler
c3791d6b43
stop crash on accessing ec->desk if its null
...
unknown if this was a bug before - never saw it before, so for now
shal assume it's new.
2014-02-06 01:18:16 +09:00
Carsten Haitzler
91b3f2e0e1
Revert "Revert "e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses""
...
This reverts commit 3067f600ee
.
revert wars! - i keep hitting problems - the one i still see is that i
come back to a machine that has blanked for a while - i launch some
app (terminology, sylpheed, chromium - doesn't matter) and no window
appears. psorcess is running. no matter how many times i launch it ...
no new process appears. this is a major bug. stopping the idler is an
optimization not a necessity.
2014-02-06 01:18:15 +09:00
Carsten Haitzler
4e8b14a245
formatting fix.
2014-02-06 01:18:15 +09:00
Mike Blumenkrantz
569c90e87f
e_client_util_is_stacking() -> e_client_is_stacking()
...
regrettably, this can't be in e_client.x because it needs E_Comp struct members and header order does not allow for this :(
2014-02-05 10:58:57 -05:00
Mike Blumenkrantz
8d71213839
e_client_name_get() -> e_client_util_name_get()
...
this should be inlined
2014-02-05 10:55:50 -05:00
Mike Blumenkrantz
eba912cf6a
e_client_resizing_get() -> e_client_util_resizing_get()
...
functions in e_client.x should be namespaced with e_client_util to indicate that they are inline (and in e_client.x)
2014-02-05 10:51:36 -05:00
Mike Blumenkrantz
4eae850861
e_util_client_shadow_state_get() -> e_client_util_shadow_state_get()
...
removals: e_util_client_shadow_state_get
2014-02-05 10:48:31 -05:00
Mike Blumenkrantz
27768fcb03
guarantee comp shadow is off when frame exists
2014-02-05 10:48:01 -05:00
Mike Blumenkrantz
cd37f23632
allow shadows on borderless, non-argb, non-shaped clients
...
T885
2014-02-04 22:27:23 -05:00
Mike Blumenkrantz
ca760bb103
check client ignores before dereferencing desk
...
D519
2014-02-04 21:29:29 -05:00
Mike Blumenkrantz
f3587f67f2
remove conf2 the rest of the way...
2014-02-04 09:41:07 -05:00
Mike Blumenkrantz
3067f600ee
Revert "e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses"
...
This reverts commit 231b780996
.
despite appearances, this functionality isn't solely for efficiency, and as such I have no plans for it to be removed.
2014-02-03 19:16:11 -05:00
Carsten Haitzler
231b780996
e_main_idler_freeze/thaw - disable - this causes no end of wierdnesses
...
so since this e main idler freeze/thaw i've noticed several times, i
come back to my machine after screen-off time period, i wke it up with
a mouse wiggle or keyboard press and try run terminology - no windwo
appears. i can run it all i want - it never shows up but the processes
are there. i've seen it happen to sylpheed where its fetch window
doesn't appear. i've had myserious menu edje objects on the top-left
with only a single item with no bg. i've had e even unable to restart
on ctrl+alt+end.
so i disabled the idler freeze/thaw as i suspected this is what the
root cause is, and sinc ethen the above problems stopped manifesting.
i can only conclude it's a deep and nasty bi-product of stopping the e
main idler, so don't do it. :) better be a bit less efficient than
buggy. either way setting manual rendering and dropping the animator
framerate should do almost all the things needed anyway.
2014-02-04 08:08:20 +09:00
Mike Blumenkrantz
de9dde6daf
remember comp object dirty state and update when necessary
...
normal clients rely upon the guarantee that they will receive another resize on next render when size updates occur before visibility happens, but overrides will never receive another resize since they always size accurately. by remembering that the state was previously considered dirty, render updates which occur before visibility are no longer lost until the next damage/resize occurs
tl;dr: your menus show up again
2014-02-03 14:00:12 -05:00
Mike Blumenkrantz
20c09a3891
don't check client zone during idler
...
this happens on every move and resize, no need to check it a third time
2014-02-03 13:58:57 -05:00
Mike Blumenkrantz
f4de16df08
don't change zone after moving client
...
this happens automatically, and with more accuracy, later on
2014-02-03 13:57:45 -05:00
Mike Blumenkrantz
7efa7b3f27
don't overwrite existing coords on creation of override client
...
overrides come with their own placement for zones
2014-02-03 13:55:38 -05:00
Mike Blumenkrantz
3c436b5c09
bugfix: initial client positioning with multiple monitors improved
...
this was added a while ago to fix positioning of windows that wanted to start centered but couldn't accurately calculate xinerama screen sizes, resulting in windows getting centered across the screen split. it ended up being a bit too aggressive, however.
2014-02-03 13:03:01 -05:00
Mike Blumenkrantz
d293b368b8
bugfix: screen limits policy no longer breaks X client positioning
...
this has been broken since it was added, and I strongly regret allowing it to be added.
2014-02-03 12:52:35 -05:00
Mike Blumenkrantz
ad8b4e6d4d
track main loop edje freeze state
2014-02-03 11:58:02 -05:00
Mike Blumenkrantz
ebeffa1a91
bugfix: hide drag icons after dnd operation ends
...
T797
2014-02-03 11:14:04 -05:00
Mike Blumenkrantz
21019e952f
Revert "add default comp match for geany autocompete window"
...
This reverts commit 5c5a89bfec
.
2014-01-30 19:15:47 -05:00
Carsten Haitzler
2de63a2f0b
comp matches - add menu and dnd types in list
2014-01-31 08:50:37 +09:00
Mike Blumenkrantz
9409f435a3
e_util_glob functions now automatch when pointers are the same
2014-01-30 13:11:00 -05:00
Mike Blumenkrantz
d3468dd920
feature: ACTIVATE_EXCLUDE window active hint policy
...
this option causes window activation requests to only activate a window if it is on a currently visible virtual desktop, otherwise it will be set as urgent. I recall that things may have worked this way long ago...
2014-01-30 12:45:49 -05:00
Mike Blumenkrantz
3125c3a674
fix more misuses of comp animating flag
...
this should even things out permanently here and ensure things get deleted when they should
related: T879
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
4bae09712d
internal windows are NOT re_manage
...
setting re_manage breaks visibility animations on first show
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
752c220482
redo X first_damage logic
...
the main idea here is to not DRAW at the time of the first damage to avoid overdraw, but ignoring the fact that the region is ready to be drawn can be problematic when the drawing eventually occurs. best choice here is to keep the region but not the render update
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
340e02efb5
ignore non-internal override clients when stacking
...
this fixes the case where clients will briefly escape normal/expected stacking on startup if an override is visible
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
53e477a7d0
simplify layer marker stacking setup
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
b6cbacc77e
ignore re_manage clients for X object creation events
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
5c5a89bfec
add default comp match for geany autocompete window
...
given that we're compositing-only now, we should be adding more of these for common apps to improve the user experience on a base configuration
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
d1fb844db0
bugfix: comp matching correctly edits in place and doesn't crash
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
cd6fcead3e
add object configuration to comp matches
2014-01-30 12:12:01 -05:00
Mike Blumenkrantz
1d22c527a3
force comp reshadow after pixmap fetch succeeds, not during setup
...
reshadowing earlier than this makes it very likely that client attributes have not been fetched, meaning that the match will fall through to a default type match instead of using the correct one
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz
49cfe28719
use object list for comp matching internal objects
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz
2ef7f0f760
rename tabs in comp match dialog to be more descriptive
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz
628696f2af
use E_Window_Type for comp match dialog instead of Ecore_X_Window_Type
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz
4bcc43282e
use E_Window_Type for comp matches instead of Ecore_X_Window_Type
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz
f14aa06c7c
remove default comp match for Background_Window
...
this no longer exists
2014-01-30 12:12:00 -05:00
Mike Blumenkrantz
37fd470632
remove default comp match for Init_Window
...
this no longer exists
2014-01-30 12:12:00 -05:00
Daniel Kolesa
811c57cfaf
enlightenment: fix menu placement
2014-01-30 12:17:54 +00:00
Mike Blumenkrantz
8e6cd13766
fix some misuses of comp animating flag
...
T879
2014-01-30 06:59:11 -05:00
Mike Blumenkrantz
5a2aab8457
reject stopping comp object effect if wrong end_cb is passed
2014-01-30 06:55:14 -05:00
Mike Blumenkrantz
9d3f47f4f6
ignore deleted clients on comp object add event
2014-01-29 21:12:07 -05:00
Mike Blumenkrantz
db01319aee
ref client itself during comp object add event
2014-01-29 21:12:07 -05:00
Mike Blumenkrantz
7ef4340c3f
revert 83397e1bde
2014-01-29 21:12:07 -05:00
Mike Blumenkrantz
10ef8170d4
remove iconify files
2014-01-29 21:12:07 -05:00
Carsten Haitzler
b7515a0958
null out damage on free in _e_comp_x_hook_client_del
2014-01-30 11:02:44 +09:00
Carsten Haitzler
83397e1bde
fix segv where comp_data is null but still accessed
...
it seems i have an override-redirect window just off the bottom-right
of my screen - i think its the scim input panel status. what happens
is it is "managed" by comp but then deleted (_e_comp_x_hook_client_del
called), BUT _e_comp_x_object_add is called with a deferred event for
that client to add it again (likely this is a race) which finds he
client in a state of not having comp_data as the E_FREE in
_e_comp_x_hook_client_del() frees it and sets it to NULL. move the
comp_data free to the actual client free (which is the last time a
client is valid at all) solves this.
2014-01-30 08:55:28 +09:00
Mike Blumenkrantz
9b36b9b78c
remove comp iconify hacks (and e_iconify api), expand comp object effect api
...
instead of adding specific handling which will work (sometimes) in one specific case, expand already-existing api to provide the needed functionality for iconify animations. now on emitting any signal to a comp object, optional glob-able effect providers can be hooked and prioritized to add effect animations
also use animating flags now when applying an object effect
a base effect is provided in elementary, but now each module which wants to hook iconify animations (or other events) can do so in the theme and have different animations with their module
2014-01-29 13:36:42 -05:00
Mike Blumenkrantz
e5bbb98918
don't reset focus to iconified clients on autoclose delete
2014-01-29 13:36:42 -05:00
Mike Blumenkrantz
c4afece1a3
revert 8b62039e6a
, use existing layer_block flag
2014-01-29 13:36:41 -05:00
Carsten Haitzler
5bfbc3f5f9
iconify - fix priority handling for iconify provider
2014-01-29 23:09:19 +09:00
Carsten Haitzler
8b62039e6a
support temporary layer changes for iconify anim purposes
2014-01-29 22:42:54 +09:00
Carsten Haitzler
1ede2a5632
iconify provider - the ability to provide geometry for src/dst of iconify
...
ibox now uses this as an initial test. there are teething problems:
1. unknown location for new icon (guess that its on right)
2. stacking - the animation is at the stacking layer of the comp obj
... this probably needs a way for the comp shobj to request a
temporary stacking change until anim done
2014-01-29 22:42:54 +09:00
Mike Blumenkrantz
1efb80bddb
set manual render and increase ecore frametime during screensaver
2014-01-28 21:13:55 -05:00
Mike Blumenkrantz
82dd3443ea
always thaw edje when freezing main idlers
...
this prevents edje from being stuck in the frozen state upon wakeup
2014-01-28 20:45:43 -05:00
Mike Blumenkrantz
0ff2a408d3
force stacking for all new X clients during add event
...
this fixes a race condition when windows open simultaneously and then are stacked under each other: the previous result was that they would end up hanging out at the top of the window stack (above all windows) until another window was raised above them. now they stack as expected
2014-01-28 20:43:19 -05:00
Mike Blumenkrantz
576f0bab2d
reject successive attempts to add evas callbacks in X compositor
2014-01-28 20:43:03 -05:00
Mike Blumenkrantz
49d6de3316
send X flush/dump to client window, not parent window
2014-01-28 15:38:40 -05:00
Mike Blumenkrantz
2c41e314d0
check sticky flag when setting comp hidden on desk set
...
seriously guys, I fixed sticky windows this time. seriously.
2014-01-27 21:49:34 -05:00
Mike Blumenkrantz
55bc44c9b8
feature: main idlers now freeze during screensaver to conserve power
2014-01-27 21:44:51 -05:00
Mike Blumenkrantz
cf267da573
also fix unsticking clients
...
e_client_desk_set() will sort out the hidden flag here automatically, so unsetting it is always the better choice
2014-01-27 21:44:05 -05:00
Mike Blumenkrantz
35aaabc491
fix toggling sticky state on clients
...
previously this would break windows if it was set based on persisting X hints
2014-01-27 21:35:39 -05:00
Mike Blumenkrantz
3dd0ea5189
break out client urgency setting into separate api function
...
this unclutters the client idler a little and also makes it easier to correctly set the urgency hint for clients
2014-01-27 21:35:39 -05:00
Mike Blumenkrantz
f54d669f43
add forgotten proto for e_widget_filepreview_clamp_video_set
2014-01-27 21:35:39 -05:00
Mike Blumenkrantz
7e0efcc508
remove e_main idler api
...
this was pretty old/legacy and looked like it would fall over pretty easily. there's no users and I see no use for it, so it goes bye bye
removals: e_main_idler_before* api
2014-01-27 16:15:07 -05:00
Mike Blumenkrantz
927300053d
feature: show video resolution in filepreview widget
2014-01-27 12:29:15 -05:00
Mike Blumenkrantz
bc3e1fd94f
feature: add fileman option to clamp video size for video previews
...
T102
2014-01-27 12:28:35 -05:00
Mike Blumenkrantz
6c79b3ea87
only change to image cursor if not using e cursor
...
T851
2014-01-27 11:18:03 -05:00
Mike Blumenkrantz
8aafbfe6ce
X cursor color support doesn't depend on config values
2014-01-27 11:12:56 -05:00
Mike Blumenkrantz
9b2372a798
ignore X configure events where override is not set
...
this handler is only for dealing with overrides, so if this flag isn't set we're not interested
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz
7a8a06ec7e
set all clients to NORMAL layer by default
...
I added a workaround for overrides a while ago when things were less good and then didn't take it out again when things became more good
T718
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz
cd2cde6477
clean up client delete+unfocus
...
previously there were cases where client focus was not explicitly unset on delete, which resulted in expected client hooks not being called and minor inconveniences to occur
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz
a466b92c8d
make client util functions take NULL more gracefully
2014-01-27 10:58:41 -05:00
Mike Blumenkrantz
b6f46fb622
ungrab comp input if either keyboard or mouse is set, not both
...
T858
2014-01-27 10:58:40 -05:00
Mike Blumenkrantz
de58ff7ecd
only hide/delete comp util objs if hiding flag is set
...
if an object is shown during the hide animation, this flag gets unset
2014-01-27 10:58:40 -05:00
Mike Blumenkrantz
6effdae157
fix comp util adding of already-visible objects
...
this fixes pager popups which don't use the new style of popup adding
2014-01-27 10:58:40 -05:00
Daniel Juyung Seo
bbe9868c49
bugfix: fix up/down key directory of slider.
2014-01-27 13:18:04 +09:00
Carsten Haitzler
04265d3b9f
bugfix: potential/maybe fix of e checking for itself on startup
...
unknown if this fixes the issue as i can't reproduce it.
2014-01-27 08:21:28 +09:00
Mike Blumenkrantz
fa33846fe4
force show of X layer markers on startup
...
this is cosmetic and only quiets some console errors on startup
2014-01-24 18:42:52 -05:00
Mike Blumenkrantz
99dca3c944
set first_damage flag on overrides
...
some overrides, in very rare cases, seem to only send a single damage. rendering at this point doesn't seem to hurt anything, so I'll give it a shot
2014-01-24 17:44:19 -05:00
Mike Blumenkrantz
db31ccc5de
unset new_client flag for override windows
...
this flag is used to block most cwm actions until after the client is past its first loop iteration. overrides, however, don't need to be blocked and will in fact break sometimes (fuck you gtk) as a result
it's worth noting that showing/hiding overrides extremely fast will still break the compositor a little in that I'm not going to render a single frame while constantly playing edje hide/show animations which are longer than the actual render. with animations disabled, however, rendering occurs as expected.
T831
2014-01-24 17:38:27 -05:00
Mike Blumenkrantz
6044fd8a78
force pixmap refresh for overrides, also automatically set pixmap size
...
override windows don't get PRESENT notifications, apparently, but this can be shortcut anyway by just setting the size from the configure event
2014-01-24 17:36:47 -05:00
Mike Blumenkrantz
09e15c49ac
only clear comp updates on resize if it isn't the first resize
2014-01-24 17:33:37 -05:00
Mike Blumenkrantz
03accb7525
return 0 for client util window_get inlines if no pixmap available
2014-01-24 17:28:32 -05:00
Mike Blumenkrantz
57903b7aa3
only send ICCCM move/resize if it isn't already going to be sent
2014-01-24 16:20:21 -05:00
Mike Blumenkrantz
d48f386c23
add define for making render debug messages easier to enable
2014-01-24 16:07:33 -05:00
Mike Blumenkrantz
c06eca070d
send ICCCM move/resize for configure requests on X windows
...
somehow this got left out of the E19 handler, which broke apps that relied upon such notifications, most notably gnome-terminal
2014-01-24 16:01:01 -05:00
Mike Blumenkrantz
a4c5629e7a
check for comp data deletion and block X calls
...
these are all invalid if client's comp data has already been cleared, so just let the compositor manipulate stuff without touching protolol
2014-01-24 13:13:07 -05:00
Mike Blumenkrantz
d4abb904ad
fix cursor visibility when working with canvas cursors
...
wayland cursors no longer override E cursors depending on config, and they also no longer randomly delete your cursor entirely
T851
2014-01-23 17:06:27 -05:00
Mike Blumenkrantz
99a4e5bd27
remove e_pointer_block api
...
this was a failure idea for a way to block X cursor changes using an api, which turned out to be overengineered
2014-01-23 17:04:41 -05:00
Mike Blumenkrantz
1f25710907
reset pointer type from config when updating size
...
this fixes switching between X/E cursors without restarting
2014-01-23 17:03:56 -05:00
Mike Blumenkrantz
e9c0e2c829
set X cursor color availability based on current compositor's root cursor
...
internal window cursors now display normally
T785
2014-01-23 16:17:34 -05:00
Mike Blumenkrantz
e54434e2db
set X root pointer after determining color availability
...
E cursor now shows normally on startup
2014-01-23 16:16:58 -05:00
Mike Blumenkrantz
ba82fb221d
set only one client, the top client, as the focused client on restarts
...
with this, stacking and focus should be perfectly preserved across e restarts
2014-01-23 13:26:35 -05:00
Mike Blumenkrantz
00c4873d06
force X stacking for re-managed clients on startup
...
this ensures that X stacking is the same as canvas stacking
2014-01-23 13:26:00 -05:00
Mike Blumenkrantz
6a80d19cd7
restack windows after unreparenting on shutdown
...
this preserves stacking order across restarts
2014-01-23 13:25:25 -05:00
Mike Blumenkrantz
c73aed330b
only set take_focus for X clients after main loop has been reached
2014-01-23 13:24:46 -05:00
Mike Blumenkrantz
a38d8828e9
don't bother with client hide animations on shutdown/restart
2014-01-23 13:23:41 -05:00
Mike Blumenkrantz
f0bb277632
don't free client list on comp shutdown
...
clients remove themselves from the client list, so this makes us fail at freeing all the clients
2014-01-23 13:20:40 -05:00
Mike Blumenkrantz
aba8a6fe32
create clients for stacking windows immediately, don't check for them later
2014-01-23 12:01:31 -05:00
Mike Blumenkrantz
40a3950855
trivial use local window variable instead of helper function
2014-01-23 11:48:18 -05:00
Mike Blumenkrantz
525a342b2e
suuuuuper don't restack layer markers
2014-01-23 11:42:22 -05:00
Mike Blumenkrantz
b10f81de08
clean up shape input rect setting code
2014-01-23 10:34:17 -05:00
Mike Blumenkrantz
5707e8ceb8
I was right the first time...disable shape events on internal wins not input_only
2014-01-23 10:34:17 -05:00
Mike Blumenkrantz
4614d8b0fb
and fix window_move action by putting this line back
2014-01-23 09:12:10 -05:00
Mike Blumenkrantz
292e8fd4b3
Revert "comp: fix self feeding event loop with shape input events on override wins"
...
This reverts commit 05a7087c84
.
2014-01-23 09:02:33 -05:00
Mike Blumenkrantz
b1fd48af59
don't double grab compositor input during client actions
...
T844
2014-01-23 08:52:45 -05:00
Mike Blumenkrantz
006c09621b
revert 0f3e3ae5da
, 14207e9770
...
shape modification on overrides
T847
2014-01-23 08:52:45 -05:00