Commit Graph

373 Commits

Author SHA1 Message Date
Carsten Haitzler ee393a201f e backlight - restructure to have real per screen backlight
now it really does look for the right way to control per screen and
only use the new e_system back-end to query/list devices etc. ...

this now opens the door to adding ddc support to e_system then using
it from e_backlight.

i can't test this... yet - but this means in theory the backlight
gadget will control the backlight of the screen it is on...
2020-02-01 11:29:38 +00:00
Carsten Haitzler c9efd9c23d fix events on internal windows if placed on another desk with remembers
this fixes T8584

@fix
2020-01-24 19:50:15 +00:00
Carsten Haitzler 7323a97f2c e client sync rendering - disable some more sync handling to improve
rendering is so much less jerky and smooth now disabling this sync
handling. something has broken over time with wit and we're better off
without...
2020-01-20 17:06:54 +00:00
Carsten Haitzler 60324a7b2c steam - special workaround for bad steam games so they match desktops
many steam games don't provide much in properites - not enough to
match to a desktop file. the only thing that actually consistently
works is to use the STEAM_GAME property and match thyat to the uri
provided to the steam command in the exec of the desktop file. this
actually can work. nothing else works reliably across the board.

and man can games be horrible and playing nice with desktops and
having poor properties. even steam itself is not good. i had to add a
workaround for that too to match steam-runtime explicitly. :(
2019-11-10 01:33:39 +00:00
Carsten Haitzler 6af9d75293 error messages - let's be less ramatic and have fewer of these on start
various errors we have are not actual errors but mostly information or
debug or status messages, so don't use ERR or just don't do the thing
that triggers it as it's useless. This leads to a less
noisy/error-like start output. cleaner for a release for sure.
2019-06-04 14:14:18 +01:00
Carsten Haitzler 91770e35f8 e focus - fix to previous commit to restore keybinds on last win del
i didn't notice, but if you delete all windows on a desktop then no
keybinding work. i needed t use my commented out workaround actually
and then a bit. @fix
2019-01-30 23:10:25 +00:00
Carsten Haitzler 9b94849f92 e focus - fix issue that affects qt popup menus e.g. in telegram
it seems to create override-redirect popup windows that it FOCUSES
instead of grabbking the kbd like most other menu windows
so this causes the parent window to lose focus in a way that then
causes the popups to dismiss instantly.

@fix
2019-01-30 09:31:47 +00:00
Carsten Haitzler f345721897 client opacity hint handling in x - fix handling to do 0-ffffffff right
e was not properly handling the opacity hint in its 0-0xffffffff
range. in one case it converted e's color value to this range but just
with << 24 which is wrong as it then ignors the next 24 lower value
bits, so it should fill the next 3 bytes with repeats of the same
value to do this right, but far worse is on READING the value it just
used the value as-is as if it were a 0-ff (0-255) alpha value that we
use in evas and didnt "thunk it down" with val >> 24. this resulted in
renoise menus being blank as renoise set the opacity value on its
menu windows and e happily made them transparent thanks to this.

this fixes that.

not to peolpe fro the above. bitshifting DOWN is ok, but bitshifting
UP leaves the lower bits all 0 and you should fill this range with
repetitions of the value to properly scale in integert space with
bitshifts. :)

@fix
2018-06-02 16:35:39 +09:00
Mike Blumenkrantz 815391126e further protect against crashes when xwayland crashes 2018-01-22 16:51:40 -05:00
Mike Blumenkrantz 8ffda5f23a don't do x11 window grab for fps counter when running in wayland mode
this crashes older efl
2018-01-22 16:21:28 -05:00
Derek Foreman 2a7312d2bc Fix potential NULL pointer dereference
CID 1382953
2017-12-21 09:54:42 -06:00
Carsten Haitzler 4f26b4b1dd e come client - actually set placed more generally...
previous fix... was not general enough. put this outside the if that
only places if props change or size pos hints need fetching.

@fix
2017-12-14 23:10:58 +09:00
Carsten Haitzler a2740126f1 e client - fix initial placement of override redirect windows in x....
several override redirect windows are being forcibly re-placed by e.
they should not be. ever. this affects scim's IM panel i see and
chromium's menus. it probably affects more than this. this fixes both
of these cases for sure. probably more.

@fix
2017-11-26 00:28:31 +09:00
Carsten Haitzler 9fe7343180 fix mouse hangs after unblank
this fixes T5883
2017-11-14 18:15:26 +09:00
Mike Blumenkrantz 8b798d9fb0 move x11 client re_manage code into corresponding NEW_CLIENT hook
setting desk after e_client_new() completes is too late, as a desk will have
been automatically set by this time and any existing positioning data will
have been mangled in the process

fix T6317
2017-11-08 09:29:35 -05:00
Mike Blumenkrantz 99db9e2557 more E_BITFIELD conversions 2017-11-08 09:22:24 -05:00
Mike Blumenkrantz ac49e6de22 unset xwayland client changes.pos flag during xwl->wl switch if client is unplaced
fixes some initial client positioning issues
2017-10-30 10:29:39 -04:00
Carsten Haitzler 32be41d505 ptr grab/ungrab for blank/unblank - log stages and work done for debug
looking to get more info for what is going on...
2017-10-26 10:50:37 +09:00
Derek Foreman 930cf317d6 Clear stored root window id when shutting down X
Currently e_comp_util_has_x() will still return true after the X
machinery is shut down - this can lead to crashes on logout under
wayland when xwayland apps are running.  Clearing the root window
id resolves this.

@ref T5593
2017-10-25 10:45:05 -04:00
Mike Blumenkrantz 40be5b9d45 move x11 compositor cleanup into shutdown function 2017-10-25 10:45:05 -04:00
Mike Blumenkrantz 3b319b5ef9 don't do full client rescale on x11 hint change if not maximized/fullscreen
regular windows don't get moved here, only resized if hints change

fix T6072
2017-09-26 12:26:18 -04:00
Mike Blumenkrantz 20ea0ed150 add/use helper function for rescaling individual clients
in any case where client needs to be rescaled to use new screen geometry
certain things must happen, such as handling shaded state and forcing the
new geometry to be applied
2017-09-12 13:21:04 -04:00
Carsten Haitzler 1d610fd609 fix up window+screen positioning fixup so it doesnt catch other clients
so some other clients like mpv also try to explicitly position their
windows (like centering on screen 0 ALWAYS) and this now gets caught
up in trying to detect libreoffice doing the same thing for
presentations. so only support this is the app has explicitly
requested initial positionin explicitly and then use pending configures.
2017-09-09 11:18:15 +09:00
Mike Blumenkrantz ef6197b119 do not force client focus setting after calling e_desk_last_focused_focus()
in some cases focus setting must be deferred, and forcing focus in these cases
will create focus bugs

ref 9ae24a3a4a
2017-09-01 13:40:12 -04:00
Carsten Haitzler 9ae24a3a4a e client focus - fix focus if moving focused window to new desk - long
fix client focus the very very very long way vs
418319fc94
2017-09-01 19:29:03 +09:00
Mike Blumenkrantz 57176bf29d do not rescale override x11 clients during hint fetching 2017-08-25 14:47:10 -04:00
Mike Blumenkrantz c31cb51499 replace <br> with <ps/> for all text 2017-08-21 10:16:35 -04:00
Carsten Haitzler 73e3ed1bb0 e x11 focus fixup - dont do the fixup if input grabbed
this actually fixes everything fully and has focus working nicely now
with the fixup
2017-08-20 01:02:03 +09:00
Mike Blumenkrantz 09a8888f76 batch x11 maximize state change requests
if an app wants to set both horizontal and vertical, set both at the same
time to improve performance and accuracy
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz 5998f175b5 temporarily cache x11 configure requests which reposition hidden windows
when an app tries to position itself before being shown, attempt to store this
and apply it in order to effectively handle cases where an app attempts to show
on a specific screen, e.g., presentation apps which show a console on one monitor
and the presentation on a different monitor

fix T1571
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz 121e7fab4b replace existing resize pointer mode for x11 client-initiated resizes
ensure there is no mismatch between pointer modes when pushing/popping modes

fix T4893
2017-08-18 15:52:50 -04:00
Mike Blumenkrantz b6759a8c27 do not apply x11 pointer focus if key/mouse grabs exist
fix T5871
2017-08-16 10:42:14 -04:00
Mike Blumenkrantz b2c5c20cde manually get client under pointer for checking x11 pointer focus
e_client_under_pointer_get() ignores overrides.

ref 3ee5a0378d

fix T5878, T5871

IF ONLY THERE WERE SOME METHOD FOR TESTING COMMITS BEFORE THEY WERE PUSHED
2017-08-14 07:30:04 -04:00
Carsten Haitzler 3ee5a0378d e - do workaround with in events due to flags to get ptr focus right
so we egnore some mouse in evets due to their flags (crossing events
thansk to grab changes or other stuff) that we want to ignore for
other reasons like when a popup menu happens and so on... so if we get
a mouse in... 0.1 sec later double check where the pointer is with a
poll then fix focus. this should patch over a long standing annoyance
here in x11.

@fix
2017-08-06 18:34:42 +09:00
Mike Blumenkrantz c804650482 rescale x11 clients after fetching hints
ensure that clients initially respect useful geometry after size hints
have been fetched
2017-08-04 16:05:16 -04:00
Mike Blumenkrantz 29617bf80b move Ecore_X_Stack_Type member from client to x11 comp_data
no functional changes
2017-08-04 16:05:15 -04:00
Mike Blumenkrantz 23613b3ded set client opacity any time netwm hint has changed in fetch
fix T5370
2017-07-28 15:44:55 -04:00
Mike Blumenkrantz 096c6b4090 continue to fetch netwm opacity hint if it changed since the last fetch
some apps (e.g., wine) do not trigger any event when changing this property,
and they use the property in order to simulate window fade in/out

ref T5370
2017-07-28 15:44:55 -04:00
Mike Blumenkrantz 596e48d066 use ecore_x_netwm_opacity_get() for x11 opacity checking
this makes the check for opacity more accurate since it returns a bool
2017-07-28 15:44:55 -04:00
Mike Blumenkrantz 5ddb8779e2 focus x11 root window on init when starting with xwayland
comp canvas does not have a valid xwindow and is unfocusable
2017-07-28 15:44:55 -04:00
Mike Blumenkrantz 263ee54545 rename bg_blank_object -> resize_object for a more accurate name 2017-07-21 14:43:37 -04:00
Carsten Haitzler c58bf393e0 mouse hiding - only grab pointer not pointer and keyboard - simple
dont need kbd grabbed at all. just pointer.
2017-07-12 10:45:50 +09:00
Mike Blumenkrantz 76484915e2 always perform initial input ungrab when waking screen
in the case where the desklock timer was longer than the blank timer,
this would permanently break input

input is still broken for the duration of the screen blank animation and
any time the screen is blanked
2017-07-11 15:04:22 -04:00
Mike Blumenkrantz 05a8df3d1a do not perform input grabbing during (un)blank if pointer will not animate
if the pointer will not animate, input will never ungrab

this commit still breaks input. do not use.
2017-07-11 15:03:55 -04:00
Mike Blumenkrantz 031d64c2ec Revert "Revert "move x11 suspend window grabbing to comp_x, ungrab on resume""
This reverts commit e90f63b25b.

move back to comp_x, put back grab on resume.

input is still broken with this commit, do not use.
2017-07-11 15:03:55 -04:00
Carsten Haitzler e90f63b25b Revert "move x11 suspend window grabbing to comp_x, ungrab on resume"
This reverts commit 7bc179da5a.

this now totally broke the glitch fix and it now animates in reverse
on suspend and does nothng on resume... testing might be a good idea
beforehand...
2017-07-11 09:00:05 +09:00
Mike Blumenkrantz 7bc179da5a move x11 suspend window grabbing to comp_x, ungrab on resume
ref d0c5fb465b
2017-07-10 09:49:34 -04:00
Carsten Haitzler d0c5fb465b support connected standby (non-s3 sleep/freeze) that new lpatops sport
this requires we have to force dpms on to reduce power. to avoid
glitches with the pointer staying around in x we need to support
suspending it too so it hides cleanly like the screen dims or undims.
also use the new powersave freeze mode to do this.

note that i've tested this on s3 supporting laptops and non-s3 and it
"works for me". it may require more testing and work. there is more to
power saving than just this as well but for now that's out of scope as
you have to mess with linux device autosuspend timeouts and a bunch
more (wowlan ... blahblah).

i need to find the source of the intermittent wakeups too in e. there
is a long lived timeout (8-ish seconds?) but more specifically e keeps
waking up from fd's and then reading /sys stuff about battery - some
event is causing us to do this... maybe to suspend this or make
battery checking very rare when in freeze mode (or screen off) etc.

so this fixes some glitches as well as supports a new way of sleeping
"alive" when hardware literally doesnt support normal s3 sleep... so
kind of a fix with a feature.
2017-07-10 10:18:50 +09:00
Mike Blumenkrantz fea11b1621 don't run x11 focus (un)set callbacks for override clients
this is unnecessary in x11 and broken in xwayland
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 836845a615 use xwayland check for clients when checking whether to reset focus to root
checking base pixmap returns false for xwayland clients
2017-06-30 10:25:18 -04:00