Commit Graph

19488 Commits

Author SHA1 Message Date
Derek Foreman 4077b3ce59 Don't block wayland client updates during screen saver fade out
We stop allowing client updates when the screensaver is on to save power,
however this happens at the start of the fade-out.  On wayland this stops
any visible client change.

If we wait until after the canvas is set to manual render instead then
we get similar benefit but don't lose display updates while they're
still visible.

Fix T5714
2017-07-18 15:17:05 -05:00
Mike Blumenkrantz 859d129edd fix E_API definition
last of the bad refs I think?

ref f8de1a3f88
2017-07-17 11:05:15 -04:00
Mike Blumenkrantz ea502c5e2b reduce include deps for enlightenment_thumb binary 2017-07-17 08:14:24 -04:00
Mike Blumenkrantz f8de1a3f88 reduce include deps for enlightenment_imc binary 2017-07-17 08:14:24 -04:00
Mike Blumenkrantz 4b4b003245 toggle NOGRAB on client input rects during move operations 2017-07-17 08:14:24 -04:00
Mike Blumenkrantz a1d62d01e8 handle multiple input regions for csd clients 2017-07-17 08:14:24 -04:00
Mike Blumenkrantz 0912906ea1 Revert "handle multiple input regions for csd clients"
This reverts commit 950bee7ce4.

accidentally pushed wrong ref, multiple incomplete broken commits were
merged

:(

fix T5739
2017-07-17 08:14:24 -04:00
Mike Blumenkrantz 219b25aff4 Revert "toggle NOGRAB on client input rects during move operations"
This reverts commit 8af555cae0.
2017-07-17 08:14:24 -04:00
Stephen 'Okra' Houston 5370793399 Sysinfo Gadget: More thread vs object lifetime work: Make threads no longer dependent on the main loop objects and vice versa. 2017-07-15 21:32:38 -05:00
Stephen 'Okra' Houston 139045c120 Sysinfo Gadget: Unify define macro checking. 2017-07-15 21:32:11 -05:00
Al 'netstar' Poole d7538011ec Modules: Fix compilation and remove warnings for BSD 2017-07-15 21:32:11 -05:00
Carsten Haitzler e130557be7 Revert "reduce include deps for enlightenment_imc binary"
This reverts commit ee71ea63ec.

Revert "reduce include deps for enlightenment_thumb binary"
This reverts commit cce14fa839.

both of these i reverted.... because they both CHANGE the define of
E_API like:

and this is wrong. e.h defines this so that these symbols are exposed.
E_API, EAPI and friends are desighned to explicitly expose symbols.
because if you try and make STRICTER binaries that only have symbols
for what was EXPLICTLY exposed like the CFLAG -fvisibility=hidden ...
then any api not explicitly marked with the attribute of visible which
that E_API macro is intended for... will be invisible. it will not
exist. this means a whole MOUNTAIN of modules stop loading as they
can't find these symbols. E_API isn't just source sugar tagging. it's
actually functional. i'd suggest using -fvisibility=hidden in your
CFLAGS by default. it's also not always portable between all compilers
so beware... (it was introduced years ago in gcc... i think clang
offers it. i don't know about icc or any others).

so since E_API is defined in e.h ... we may as well keep the e.h
include there instead of hand re-writing a list of includes. does
reducing the include deps really have an impact worth talking about on
compile time? the commit logs didn't say. but it does break module
loading and does it by adding lots of lines of code that are far mroe
easily broken now (this is an examplt). :)
2017-07-15 10:13:21 +09:00
Mike Blumenkrantz b7e8e886e9 do not generate module.desktop files
the purpose of this is to allow variable substitutions, but no desktop
files do this so it's a waste of build time for no reason
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 327b69015b make efm build without elm includes 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz c809f8b72d split macros out of e.h into separate file 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 4b656d59c9 bump E_VERSION_MAJOR
should have been done a while ago
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz bc294e9bce remove unused Evas.h include from e_fm_ipc.c 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 55e1640261 don't free x11 clipboard source immediately
ref T5738
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz ad56e78872 only store the compositor's own data manager resource to e_comp_wl->mgr.resource 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz cce14fa839 reduce include deps for enlightenment_thumb binary 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz ee71ea63ec reduce include deps for enlightenment_imc binary 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz a57e39a5ea fix e_alert build with wayland only 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 94633fbde1 fix wayland-only build 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 16378acfd2 remove unused defines 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 9173deb1fc remove egl from build
not needed
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz a8869a14e9 update date for time gadgets when day timer ticks
ref T5700
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 6630e602a9 save config after clearing desktop gadget site 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 4a12f5c3f2 use correct key name for BackSpace in desktop gadget key handler 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 03325b0195 always check for autoclose object when adding gadget objs to edit grabber
ensure popups can be closed as expected during editor operations
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 02b3755828 hide gadget editor if gadget triggers a popup
show again when popup is hidden
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 35f4bc1cdc add better handling for interacting with gadget popups while editor is up
includes gadget wizards

ref T4648
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 5e7e38d2c4 don't close gadget editor if ON_HOLD is set or click is not button 1 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 4e8836e591 prune unconfigured gadgets from comp object sites upon site del
automatically created sites shouldn't trigger wizards upon show
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 3da7e0d1e0 freeze pointer animations while screensaver is active 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 2290657f36 disable clock+time gadget updating during dpms 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz c895a7fae5 freeze edje during dpms 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz b283e95d1e rename clock+time module event handler lists
this is no longer what it used to be...
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 74613ff0fd only set qt theme override env vars if option to do theme matching is enabled 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz b7776798c7 don't attempt desk flips from client move handler
this should be handled by normal zone handlers now
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 8af555cae0 toggle NOGRAB on client input rects during move operations 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 950bee7ce4 handle multiple input regions for csd clients 2017-07-14 18:40:50 -04:00
Mike Blumenkrantz b8bfd9e7af update time gadget date string during clock timer
fix T5700
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 664c3dc468 move gadget del callbacks to AFTER priority
ensure gadget internals have longer lifetime than external callbacks on
gadget objects

ref 27091c510c

fix T5601, T5693
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 8e54684a2e delete gadget editor site when editor is deleted
leak--
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 415a94b987 unpack gadget from site editor box on content_item del
the gadget should be deleted by the site, not by the gen(list|grid)

ref T5693
2017-07-14 18:40:50 -04:00
Mike Blumenkrantz 59b14a4ace unset gadget site's layout pointer after destroying gadgets
ensure this persists through gadget del callbacks

ref T5693
2017-07-14 18:40:50 -04:00
Derek Foreman 27f72e76a4 Fix xwayland selection crash
When creating the data manager source, passing an id of 1 overwrites
the wl_display's id in the map, causing crashes the next time the
client tries to interact with that object.  The client in this case
is Xwayland.  Bad things happen.

Instead pass 0 which just chooses an available map slot.

Fix T5738
2017-07-14 16:56:36 -05:00
Derek Foreman 98f4336fcd Fix clamping on screen blanker timeout
commit f43d2b881c
added the ability to set screen blanker timeouts as low as 6 seconds,
but E still clamped to 30 seconds when loading config.
2017-07-14 11:10:06 -05:00
Carsten Haitzler f43d2b881c e blanking - add new special "locked timeout" that can be shorter
this allows you to have a different timeout when locked thats much
shorter to save screen/power more unless you log in.

@feature
2017-07-14 09:43:29 +09:00
Stephen 'Okra' Houston 804f038f71 Sysinfo Gadget: Thread Lifetime vs Object Lifetime management.
This cleans up how sysinfo manages object vs thread lifetimes.  If thread is still alive dependent on aspects that need to be freed in the gadget removal process, it defers that cleanup from the remove callback to the thread end callback.  As for the combination sysinfo gadget, each gadget inside of sysinfo will set a done flag alerting that the cleanup of the combination gadget can happen once all threads are done.
This fixes T5694
2017-07-13 19:21:49 -05:00
Stephen 'Okra' Houston 739c1aa4b8 Sysinfo Gadgets: Thread handling improvement. Pause on Screensaver. Follow powersave. 2017-07-13 14:36:09 -05:00
Stephen 'Okra' Houston abfc0e8210 Gitignore the sysfs frequency bin. 2017-07-13 14:24:02 -05:00
Stephen 'Okra' Houston 0b6c8a4d91 Backlight Gadget: No need for a settings button as the uniform right click does the same. 2017-07-13 11:12:58 -05:00
Stephen 'Okra' Houston 392d12bafd Cpuclock: Don't debug print the exec string. 2017-07-12 16:07:58 -05:00
Stephen 'Okra' Houston 9e7b78ffab Gadgets: Make sure to avoid conflicts with functions and globals. 2017-07-12 16:03:06 -05:00
Stephen 'Okra' Houston b93849072a Thermal: Add units. 2017-07-12 15:44:01 -05:00
Stephen 'Okra' Houston 731590ee76 Luncher: Remove useless and dangerous global. 2017-07-12 15:43:39 -05:00
Stephen 'Okra' Houston ada1fdb71a CPUClock: Allow setting of governors. 2017-07-12 15:42:56 -05:00
Stephen 'Okra' Houston d4bc101866 Cpuclock: Clean up some governor handling code. 2017-07-12 13:32:56 -05:00
Stephen 'Okra' Houston 2fa8df456a Thermal: Add left click info popup 2017-07-12 13:31:22 -05:00
Stephen 'Okra' Houston 2bbdd999ed Sysinfo: Update Cpuclock and Thermal to the powersave api. 2017-07-12 01:24:03 -05:00
Stephen 'Okra' Houston d03c254f5e Sysinfo - Cpuclock: Add the left click info and right click config popup. 2017-07-12 01:08:34 -05:00
Stephen 'Okra' Houston ae26e913ca Thermal config: Fix rounding and math issues when switching between units. 2017-07-11 21:41:05 -05: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 c13fa73866 e - make some comment notes on broken lock display on saver etc.
we have some visual glitches i'm on a mission to fix... and the above
is one of those. timeout for lock should begin after screen has gone
black first.
2017-07-11 16:57:14 +09:00
Carsten Haitzler 3fc786413c e - fix desklock + grabs with hiding pointer on screen powerdown/up 2017-07-11 16:57:14 +09:00
Jean-Philippe Andre b173ed7be6 pulse: do not leak strbuf
See also ac92ff5256.
- eina_strbuf_string_get() returns the internally stored string as
  a const char *, and does not free the strbuf itself
- eina_strbuf_string_steal() returns the internal string as a
  char *, giving ownership to the caller, and frees the strbuf
  itself
- eina_stringshare_add() takes a const char * as input and makes a
  copy of the string

As a consequence, ss_add(sb_string_steal()) leaks the internal
string from the strbuf, while ss_add(sb_string_get()) leaks the
strbuf structure.

A one liner here would require either an eina_slstr based API or
an API in stringshare to take ownership of a given string. Both
would be useful APIs :)
2017-07-11 10:49:03 +09: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
Marcel Hollerbach ac92ff5256 mixer: do not leak a allocated string
this fixes a leak, thank you jp!

@fix
2017-07-10 15:29:27 +02: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
Carsten Haitzler 7caf5c8ff4 add new powersave features for supporting a live sleep mode
so new laptops now seem to no longer support S3 sleep. sleeping is
done basically by going as idle as possible. you can ask the kernel to
freeze execution BUT this seems to use about the same power as staying
alive in my tests. to support this add 2 things:

1. a FREEZE powersave mode which implies we're alive but want to
really stay as idle as absolutely possible.
2. powersave aware sleep functions that replace the usleeps in threads
so they can switch from being super sleepy when in freeze mode to
normal.
2017-07-10 10:18:50 +09:00
Amitesh Singh b88059b91a e widget entry: fix the compilation warning
src/bin/e_widget_entry.c:269:16: warning:
unused variable ‘text’ [-Wunused-variable]
2017-07-08 22:23:22 +09:00
Mike Blumenkrantz ac8a9fc2f0 don't set E_Client->want_focus for wl overrides with parents
all input for these goes to the xwl resource anyway, let parent get focus

ref 69c85fc1aa
2017-07-07 16:26:28 -04:00
Mike Blumenkrantz 4d92808e65 use kbd focus resource's client instead of "focused" client in data device 2017-07-07 16:26:28 -04:00
Mike Blumenkrantz 9fc9fce9a7 unset DISPLAY in mixer when performing pulseaudio operations under wl 2017-07-07 16:26:28 -04:00
Mike Blumenkrantz 84e9118c9f don't reject internal wl selections based on serial value 2017-07-07 16:26:28 -04:00
Mike Blumenkrantz a142a7eb80 focus comp canvas's client when no real client is focused 2017-07-07 16:26:28 -04:00
Mike Blumenkrantz 1b6ccd5aa8 add handler to catch (new) fake elm win wl2 window client
now the compositor canvas has a wl2 window
2017-07-07 16:26:28 -04:00
Mike Blumenkrantz b008dce0a0 add "focus" mode for render debug 2017-07-07 16:26:28 -04:00
Stephen 'Okra' Houston a1b2771496 Cpuclock: Fix sysinfo cpuclock theme name. 2017-07-07 14:52:16 -05:00
Stephen 'Okra' Houston 557a060c78 Thermal Gadget: Add configuration popup.
Choose temp units, update poll time, and min/max temps.
2017-07-07 14:38:57 -05:00
Stephen 'Okra' Houston 480eb2a04f Luncher: Hint the preview popup to have the same min size as the preview windows.
This fixes T5669
2017-07-07 10:30:38 -05:00
Stephen Houston 28da1ff339 Nothing to see here. debug-- 2017-07-06 21:12:53 -05:00
Stephen 'Okra' Houston bac93b1bb5 Wireless Gadget: Make the network list popup and right click popup work correctly.
This fixes an issue where layering was off for the popup network list and when the right click settings window would not open.
2017-07-06 16:29:19 -05:00
Derek Foreman c0751ef3eb Make wayland clients render when only visible from mirrors
Under some circumstances we can defer frame callbacks forever for clients
that are only visible on desk mirrors.

I'm not certain those circumstances should actually occur (Ref T5678) but
at least for now this is a trivial and harmless workaround.

Fix T5654
2017-07-06 15:40:59 -05:00
Stephen 'Okra' Houston 9894726039 Gadgets: Clamp aspect sets to a minimum of width and height minimum of 1.
This fixes T5600
2017-07-06 14:16:00 -05:00
Stephen 'Okra' Houston 202bf770f4 Gadgets: Follow gadget theme naming conventions. 2017-07-06 12:20:53 -05:00
Derek Foreman 19a9f4ed29 also apply xdg-shell v6 client del hooks to external clients
partially reverts 7e05eff3e3

This was causing problems when destroying some xdg v6 clients.

if weston-simple-shm was killed while not on the current desktop
it would remain on deskmirrors.
2017-07-06 11:40:30 -05:00
Marcel Hollerbach d2d3d9976b mixer: the name has to be a stringshare 2017-07-04 16:49:54 +02:00
Marcel Hollerbach b32086d402 emixer: use a better name for the sink inputs
it seems applications are using a higher quality name with the property
PA_PROP_APPLICATION_NAME.

ref T5664
2017-07-04 10:12:01 +02:00
Carsten Haitzler ea89d44ef4 e - fix entry wrapper - e entry was plain. elm is markup. do it properly
convert to/from utf8 plain/markup in e widget entry wrapper.... this
fixes broken results if you enter escapable text like " or < or > or &
... etc.

@fix
2017-07-03 19:19:55 +09:00
Mike Blumenkrantz 02d8da9cd9 remove "gadget_removed" smart callback from gadgets which use it upon deletion
ensure that this isn't called in a use-after-free scenario
2017-06-30 17:03:24 -04:00
Mike Blumenkrantz af60915713 add function for a gadget to remove itself 2017-06-30 17:03:24 -04:00
Mike Blumenkrantz c109e2d6a6 save gadget site config when deleting gadget after wizard failure 2017-06-30 17:03:24 -04:00
Derek Foreman 034211051b Remove some duplicate dmabuf validity checks
These have been moved into EFL where they belong.
2017-06-30 14:51:05 -05:00
Derek Foreman cb83120863 Remove old test for dmabuf validity
EFL now sets image load error for native surface set, so this hack is
no longer required.
2017-06-30 14:51:05 -05:00
Mike Blumenkrantz 5df53cec7b process screen events in wl when using fake screens 2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 75b473c4ef don't crash in randr module when using fake xinerama screens 2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 43dea93969 handle rotations with fake xinerama screens 2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 789eccf12f try redirecting failed clients again during resize
it seems like this is a good place to try, and this seems to resolve
some render updating issues on restart, such as with maximized chrome
windows

ref T5599
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 44693a1852 only unredirect clients during comp update after 3 failures
tfw your conditional is backwards
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 07d4f3bcf6 don't call comp object cleanup functions for clients without comp objects 2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 1f0bed7e0b check ec pointer before deref in luncher's E_EVENT_EXEC_DEL handler
a deleted exe is unlikely to have clients

fix T5599
2017-06-30 10:25:18 -04:00
Mike Blumenkrantz 9357ecc443 don't force shm for xwayland launch and enable gl
fix T5606
2017-06-30 10:25:18 -04: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
Mike Blumenkrantz 69c85fc1aa only set E_Client->want_focus for wl override clients if not popup client
do not attempt to focus popups as they are already child windows and thus
do not require keyboard focus
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz b183e001a1 make e_comp_object_frame_allowed() return false for ignored clients 2017-06-30 10:25:17 -04:00
Mike Blumenkrantz d0accb8e52 block pointer warping on override clients
this is never okay
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 3fdcc92ab0 check exit status from auth subprocess
if the process doesn't exit then auth didn't succeed and this is a system issue

ref T5604
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 42523d27f0 multiply pointer axis values by 10 for wl clients
wayland clients expect this multiplier, so now scrolling speed should be
back to normal
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 89aa89f3a6 use event grabber for gadget editors to improve event detection
fixes some cases where clicking the background didn't dismiss the editor
and allows for clicking on non-gadget parts of the editor
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 1fe4555d7b remove eeze init/shutdown calls from modules
this is unnecessary and was done with mismatched init/shutdowns in some cases
2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 809a3492ae unset gadget editor pointer on editor delete 2017-06-30 10:25:17 -04:00
Mike Blumenkrantz 4f77573e6c perform move after resize during comp object show
in the case where an object is being shown before it has been moved or
resized, a move operation will trigger a series of callbacks which force the
compositor to attempt an illegal operation (recursive show before resize)

fix T5521
2017-06-30 10:25:17 -04:00
Derek Foreman e26f2a12f5 Test dmabuf via native_surface_set even in software render
This is necessary to verify the the attributes struct is the same
version EFL can process, before we commit to displaying it.

@fix
2017-06-29 16:01:56 -05:00
Mike Blumenkrantz bb1d7790b0 force shape queue when adding/deleting action client event grabber
ensure that this is normalized to provide consistent behavior before
and after actions begin/terminate
2017-06-26 14:48:03 -04:00
Mike Blumenkrantz 63f3fe949c block "user" client resizes during comp client updating phase
resizing objects triggers clip resizes and further event feeding which
can propagate mouse events such that clients try to resize themselves
during the update phase, resulting in illegal compositor behavior
2017-06-24 12:34:12 -04:00
Mike Blumenkrantz 0a67a96df3 Revert "block client mouse move calls from comp object during move/resize"
This reverts commit 4464c681fd.

on the right track but not 100%...
2017-06-24 12:10:43 -04:00
Mike Blumenkrantz 4464c681fd block client mouse move calls from comp object during move/resize
this is now handled by the event grabber. many callbacks on this
object are due to clip changes instead of genuine mouse movements,
meaning that processing events can lead to further resizes during a
render cycle
2017-06-24 11:57:15 -04:00
Carsten Haitzler a9cd60fb90 e - remove doofus-like code from mike with regards to making e crash or not 2017-06-24 13:27:16 +09:00
Mike Blumenkrantz aad74ea341 do not enable abort on critical in development builds for raster only
let's dispense with the new environment variables and workarounds and
avoid future conflicts with this efl-style problem solving
2017-06-23 18:23:42 -04:00
Mike Blumenkrantz 46fc9c0988 freeze client action event grabber stacking
ensure event stacking does not get modified by external handlers
2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 8b8703cfa6 use safe list iterating when clearing a gadget site during shutdown
demo gadgets are immediately removed when deleted, leading to list
corruption unless a safe iterator is used
2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 9fa3fdfc78 always grab input when showing a gadget wizard 2017-06-23 17:49:44 -04:00
Mike Blumenkrantz be0015a283 hide gadget editor when dragging/wizarding a new gadget 2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 11a6d7ae35 Revert "e - allow env var to turn off aborting at any CRI issue"
This reverts commit 62feb358e6.

set EINA_LOG_LEVELS=e:0 or comment out code locally if you aren't interested
in helping to de-bug development builds

this is meant to be as convenient for users as disabling "core"
features in efl builds in order to deter them from disregarding bug
reporting
2017-06-23 17:49:44 -04:00
Mike Blumenkrantz fd2817df4a use seat0 as default seat name instead of default 2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 7e6a2a9064 update gadget position during a resize from top/left edge 2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 099e6e019d reset demo gadget id before deleting gadget object during drop operation
ref 75224784bd
2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 446860b68a if gadget wizard returns a zero id, remove gadget from site and destroy 2017-06-23 17:49:44 -04:00
Mike Blumenkrantz 4c58940291 force horizontal orient for all gadget editors with orientation
vertical orient does not fit well into any list/grid widgets, not sure
if this can be further improved yet
2017-06-23 17:49:44 -04:00
Mike Blumenkrantz ebfb925a11 redo the gadget editor (again)
the list implementation had some issues with sizing and was also
inflexible and prevented a good display for desktop gadget sites
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 0180cef47d do not attempt to pack cpumonitor into box in sysinfo mode
this causes an eo error
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz a441d4d22a do not advertise luncher grid or sysinfo for gadget sites with orient
these are only feasible for non-bar sites
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 6a1d0226ed allow gadgets to return a null object for demo objects
this indicates the gadget should not be advertised for the given demo
purpose
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 97c3db5ab1 ensure flag to preserve gadget editor is unset after setup
the first click on the desktop should always dismiss the editor if
a gadget is not being dragged
2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 1b15a85d74 print object type if name is null during shape debug 2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 2716802ec9 set pass events on shape debug rects 2017-06-23 17:49:43 -04:00
Mike Blumenkrantz 62e1027509 try only 1 reconnect to pulse when mixer fails to init
this causes huge lag on failure with no termination case. if it fails
on the reconnect attempt then odds are it's never going to succeed
2017-06-23 17:49:43 -04:00
Derek Foreman 4879b340a2 Initialize the Evas_Native_Surface to 0 for dmabuf tests
ref e6f17dee5d

Should probably clear this one too, though the recent native surface api
changes won't cause any breakage here, future ones might.
2017-06-23 11:55:37 -05:00
Derek Foreman 5de9f0f8a3 Allow enabling experimental hardware plane support
Hardware plane support is inactive unless a scanout handler is set, this
patch adds a scanout handler and uses it when the env var
E_USE_HARDWARE_PLANES is set.

In the future this env var will go away when hardware plane support is
stable enough to enable it everywhere.
2017-06-23 11:54:08 -05:00
Derek Foreman 18fbd1da32 Don't delete busy E_Comp_Wl_Buffers
Hardware planes are going to make E_Comp_Wl_Buffer lifetimes harder to
manage, so we need to let the E_Comp_Wl_Buffer object outlive the
resource attached to it.

We already track a busy count, so we just have to use it to prevent
deleting a busy buffer.
2017-06-23 11:52:04 -05:00
Derek Foreman acd0e4b036 Refactor wayland buffer releasing
This code should've been common but wasn't, so this might fix some
resource leaks.
2017-06-23 11:52:01 -05:00
Derek Foreman e6f17dee5d Clear the native surface structure before initializing it
Since the native surface "API" is isomorphic with pain and suffering, we
should be extra careful when we touch it.
2017-06-22 14:05:24 -05:00
Carsten Haitzler 62feb358e6 e - allow env var to turn off aborting at any CRI issue
some of these CRI logs are not wirth an abort... but mike seems to
think so... so i'm going to turn it off for me...
2017-06-22 10:34:16 +09:00
Carsten Haitzler 3e3b48478b Revert "e comp object - stop being cricical where pixmap and win size dont match"
This reverts commit e288852393.

Mike likes e to crash. :)
2017-06-22 09:23:14 +09:00
Carsten Haitzler e288852393 e comp object - stop being cricical where pixmap and win size dont match
now i resize some windows and am in a white box of death each time...
this is really unfriendly... so downgrade to an err ad this is a
recoverable error.
2017-06-21 11:31:24 +09:00
Carsten Haitzler 655a8f3218 e start - remove mtrack ... no one using it (not even me)
:)
2017-06-21 11:27:50 +09:00
Mike Blumenkrantz dae4bd6576 feed mouse-up to action client from event grabber, then attempt to end actions
signal actions don't pass through the same init methods as other actions, and
so it becomes possible for the mouse-up to fail to terminate the action
2017-06-19 15:26:34 -04:00
Mike Blumenkrantz 339cbde731 reject client mouse move if coords match previous position
ensure that random event feeds don't accidentally trigger unwanted
move/resize attempts which can break the compositor
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz bc175b0d7b send version edje signal to ssd theme
allow enabling new theme features based on version
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz b58e380b19 simplify drm output update event by using randr screen refresh queuing
also moves all the output add/del into e_comp_wl
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 773122db66 store output subpixel value to randr2 screen data during drm init 2017-06-16 15:00:12 -04:00
Mike Blumenkrantz d9c03f1059 use fake xinerama screens when initializing wl outputs
always ignore physical screens if fake ones are present
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 9f5a07d788 hook client object unref callback to cleanup comp object internals
ensure cleanup occurs before client object is freed
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 4933569bc1 don't null pointer after deleting internal win during wl delete request
this is invalid during a logout
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz 5e7ca478d0 route all mouse movements to action_client during action grab
ensure client receives all necessary mouse events
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz b48419c577 only remove left/right maximize when removing vertical if left/right is set
avoid accidentally removing horizontal maximizes
2017-06-16 15:00:12 -04:00
Mike Blumenkrantz c2e891bbf4 update wl_drm for recent efl_input_device api changes
@jpeg plz http://i1.kym-cdn.com/photos/images/original/000/312/563/05d.jpg
2017-06-12 05:48:32 -04:00
Mike Blumenkrantz b4e96a0aea feed mouse up during window maximize if the current window is being dragged
prevent window from accidentally toggling its maximize state repeatedly
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz 7d39be8c4a send nograb signal to ssd theme on creation
disable pointer grabs on ssd borders

edge bindings can now be triggered during window drags

fix T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz f396d3fe42 re-enable zone edges during window_move action
this can now be sensibly handled without accidentally sending input to
every object on the canvas

ref T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz d0f45a48a4 use event_grabber to simulate explicit grab during window move/resize actions
this grabs the client's frame as well as any existing edge objects during drags

ref T5552
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz b0a7c98faf do not trigger events/bindings on zone object events with timestamp==0
these are internal event feeds and should not trigger additional actions
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz 41a5fe2708 delete client raise timer when beginning a move/resize operation
this breaks things in subtle ways
2017-06-09 20:18:14 -04:00
Mike Blumenkrantz 9f48fd5a9c perform client raise before triggering move/resize BEGIN client hook
hooks may further modify stacking, so ensure any changes are done before
that point
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz b98854b17b remove client callback from luncher icon when necessary
==20443== Invalid read of size 8
==20443==    at 0x28CED526: _bar_exec_new_show (bar.c:980)
==20443==    by 0x819D78D: _eo_evas_object_cb (evas_callbacks.c:184)
==20443==    by 0xDFB6FED: _event_callback_call (eo_base_class.c:1496)
==20443==    by 0xDFB7373: _efl_object_event_callback_legacy_call (eo_base_class.c:1569)
==20443==    by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572)
==20443==    by 0x81DC562: _efl_canvas_object_efl_object_event_callback_legacy_call (evas_object_main.c:993)
==20443==    by 0xDFB743A: efl_event_callback_legacy_call (eo_base_class.c:1572)
==20443==    by 0x819E1F8: evas_object_event_callback_call (evas_callbacks.c:404)
==20443==    by 0x81E6B23: evas_object_inform_call_show (evas_object_inform.c:13)
==20443==    by 0x81DECA2: _show (evas_object_main.c:1689)
==20443==    by 0x81DF0E7: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1810)
==20443==    by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21)
==20443==    by 0x81DEA93: evas_object_show (evas_object_main.c:1639)
==20443==    by 0x483706: _e_comp_intercept_show_helper (e_comp_object.c:1754)
==20443==    by 0x483761: _e_comp_intercept_show (e_comp_object.c:1768)
==20443==    by 0x81E7536: evas_object_intercept_call_show (evas_object_intercept.c:71)
==20443==    by 0x81E7ED2: _evas_object_intercept_call_internal (evas_object_intercept.c:103)
==20443==    by 0x81E88B0: _evas_object_intercept_call_evas (evas_object_intercept.c:236)
==20443==    by 0x81DF0CA: _efl_canvas_object_efl_gfx_visible_set (evas_object_main.c:1807)
==20443==    by 0xDD670B9: efl_gfx_visible_set (efl_gfx.eo.c:21)
==20443==    by 0x81DEA93: evas_object_show (evas_object_main.c:1639)
==20443==    by 0x4A6793: _e_desk_show_begin (e_desk.c:821)
==20443==    by 0x4A4E39: e_desk_show (e_desk.c:312)
==20443==    by 0x537C2E: _e_int_menus_clients_item_cb (e_int_menus.c:1624)
==20443==    by 0x548D3F: _e_menu_active_call (e_menu.c:2056)
==20443==    by 0x54ABFB: _e_menu_cb_mouse_up (e_menu.c:2789)
==20443==    by 0xC636B66: _ecore_call_handler_cb (ecore_private.h:325)
==20443==    by 0xC637B3F: _ecore_event_call (ecore_events.c:518)
==20443==    by 0xC641158: _ecore_main_loop_iterate_internal (ecore_main.c:2397)
==20443==    by 0xC63EC7E: ecore_main_loop_begin (ecore_main.c:1299)
==20443==    by 0x43DE81: main (e_main.c:1081)
==20443==  Address 0x20 is not stack'd, malloc'd or (recently) free'd
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz b76972b162 remove misleading null checks from _bar_cb_client_remove()
client events cannot be triggered without a client
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz f16df40d2b use correct event struct in luncher's _bar_cb_client_remove() 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz ca1638c672 simplify handling of new exec clients when adding luncher icons 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz afcf6c6073 simplify _bar_check_for_duplicates() in luncher 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz 79ed10927e preserve cursor state in drm output during vt switch
#wew

ref T5483
2017-06-09 20:18:13 -04:00
Mike Blumenkrantz 58226266fd store current pointer client into pointer struct 2017-06-09 20:18:13 -04:00
Mike Blumenkrantz bf157e03dc another fix for e_comp_wl->ptr.x/y coords being wl_fixed instead of ints
ref 2c7e91d38f
2017-06-09 20:18:13 -04:00
Stephen 'Okra' Houston 16c05faabd Luncher: Allow the size of previews to be configurable. 2017-06-09 14:21:12 -05:00
Stephen 'Okra' Houston 7ff0e585ac Gadgets: Remove the word "Gadget" from the name of gadgets. 2017-06-08 15:27:24 -05:00
Derek Foreman 2bd4a9dc85 clean up some code
remove write-only variable in the pixmap struct
2017-06-07 12:12:16 -05:00
Derek Foreman 71f70ad8a5 Fix unused var compiler warning in wl_drm
Unused variable after my session activation cleanup
2017-06-07 12:11:59 -05:00
Derek Foreman b37acd6e39 Revert "Stop misuing EVAS_NATIVE_SURFACE_VERSION macro"
This reverts commit 4a40614f2f.

Apparently this macro is unlike similar macros in other libraries
that have more sensible semantics.
2017-06-06 16:42:01 -05:00
Derek Foreman 4a40614f2f Stop misuing EVAS_NATIVE_SURFACE_VERSION macro
We should be stating the version the code supports, not the version
that the EFL version we compiled against supports.
2017-06-06 16:28:20 -05:00
Derek Foreman 52c379f4b2 Remove some duplicate operations
the native surface version was set outside of the switch statement,
so we don't need to re-set it to the same thing here.
2017-06-06 16:28:20 -05:00
Mike Blumenkrantz 1f2b95ae4f use FOREACH_SAFE when walking client list during logout
internal clients can be instantly destroyed and removed from the list
2017-06-02 15:46:26 -04:00
Derek Foreman 239101d95f Fix wl_drm session (de)activation callback
I missed this in my last commit - we probably shouldn't be calling
e_comp_render_queue or e_comp_shape_queue_block() after hiding the
ecore_evas anyway - and by removing the e_comp_shape_queue_block()
in the activation callback I made things asymmetrical.  Ungood.
2017-06-02 13:59:42 -05:00
Derek Foreman 5ce8bf3992 Fix wl_drm session activation callback
The code intended to force evas to redraw when we switch back from
another virtual console is failing to do so.  Remove it and replace
it with simpler code that successfully forces a redraw.
2017-06-02 13:49:06 -05:00
Derek Foreman 4fca111eb5 Don't require dmabuf buffers to be writeable
Compositor doesn't need to write to this buffer, and most clients won't
allocate them in a way that the compositor can.  Relax the test criteria.
2017-05-30 11:58:32 -05:00
Mike Blumenkrantz 15ea942ab8 update wl input to use new keyboard context/keymap api
fix keymap changes on compositor canvas
2017-05-25 18:37:25 -04:00
Mike Blumenkrantz 556bc10121 remove unnecessary comparison when applying new keyboard layout in gadget 2017-05-25 15:03:28 -04:00
Mike Blumenkrantz f11aeaa8d0 do not perform zone updates on ignored clients during evas callbacks
ignored clients should not have a zone or a desk
2017-05-25 12:15:42 -04:00
Mike Blumenkrantz c6a0abc763 force client pixmap refresh immediately during resize if nocomp is active
in the case where this path was reached during x11 nocomp, the client's pixmap
refresh would be deferred until the end of nocomp, even when the refresh would
otherwise end the nocomp. instead, force the refresh immediately.

fix T4887
2017-05-24 10:10:07 -04:00
Mike Blumenkrantz 9701588cc8 add error messages when symbols fail to resolve in xwl init
ref T5258
2017-05-24 10:10:07 -04:00
Mike Blumenkrantz c21c0d64eb always run client icon update path when creating xdg6 role surface
ensure that the client gets a desktop associated with it so that it
can be matched to exec instances
2017-05-24 10:10:07 -04:00
Stephen 'Okra' Houston 456e899b44 Luncher: make sure all global handlers get created -- check for different luncher types in the callbacks. 2017-05-22 13:28:51 -05:00
Stephen 'Okra' Houston 3b39279dfb Pager Gadget: Fix potential crash on screen changes such as screen size change. 2017-05-22 13:14:55 -05:00
Stephen 'Okra' Houston 171686f0a9 Luncher Improvements: Don't add multiple global handlers for the same events and don't show preview immediately for iconic.
This fixes T5377
2017-05-22 13:01:12 -05:00
Stephen 'Okra' Houston e5c337abfb Mixer/Backlight: Set correct levels on creation.
This fixes T5500
2017-05-19 10:52:18 -05:00