Commit Graph

10130 Commits

Author SHA1 Message Date
Derek Foreman e1c9bfa619 wayland-compositor: Set server mode
Summary:
If we don't set server mode we can deadlock when trying to use functions
that way for server mode to become set.

This can currently cause a startup freeze in e_scale_init().

Reviewers: zmike, devilhorns

Reviewed By: devilhorns

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2520
2015-05-15 14:44:21 -04:00
Nicolas Marcotte 3e3dc6dcc5 added a macro and a fucntion to switch to desktop D on screen S as specified in https://phab.enlightenment.org/T2218
Summary: Merge branch 'master' of https://git.enlightenment.org/core/enlightenment initnal implementation of https://phab.enlightenment.org/T2218

Reviewers: raster

Subscribers: raster, cedric

Differential Revision: https://phab.enlightenment.org/D2231

Fixed:
Modified patch to use existing macros for walking all screens.
2015-05-15 16:13:13 +09:00
Chris Michael fd2e05f715 drm randr: More work on getting RandR functional in E-Wl. This adds a
function to remove an output from e_comp_wl also.

NB: Not entirely complete yet

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 14:50:40 -04:00
Chris Michael ab9abcb598 remove unused 'serial' variable in mulit-move callback
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 13:20:33 -04:00
Chris Michael 3a15df2454 fix numerous compile errors from D2482
NB: Mental Note: COMPILE BEFORE PUSH !!

 # butts

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 12:26:07 -04:00
jhyuni.kang c59595e964 Support wl_touch and send wl_touch events to client
Summary:
Currently enlightenment-wayland support pointer and keyboard events.(in input)
         So I added EVAS_CALLBACK_MULTI_* event handler and hanling functions for wl_touch interface.
         This code send wl_touch events to client like a pointer event.

Test Plan:
In wayland + enlightenment environment, generate multi touch events.
           The enlightenment will be send wl_touch events to client.

Reviewers: raster, devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2482
2015-05-13 12:05:57 -04:00
Chris Michael 57fdd5613d send screen paramaters in proper order to e_comp_wl_output_init
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-13 12:05:17 -04:00
Boram Park 7a078ba99b e_comp_wl: fix segfault in case parent's surface is destroyed before subsurface is destroyed
Summary:
A parent surface can be destroyed. In this case, ec->comp_data->sub.data->parent has
a wrong address which has already destroyed. Then, it occurs segmentation fault.
To avoid segfault, ec->comp_data->sub.data->parent should be NULL when a parent surface
is destroyed.

Signed-off-by: Boram Park <boram1288.park@samsung.com>

Test Plan: Run attached test program(subsurface)

Reviewers: gwanglim, cedric, devilhorns, zmike

Reviewed By: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2484
2015-05-12 14:43:00 -04:00
Daniel Kolesa 82116f63ab remove str(n)dupa usages
str(n)dupa are GNU extensions that duplicate a string, using an alloca'd
buffer. This patch removes their definitions from e.h (which should only
contain E's own API, without fallback definitions for libc functions)
which were wrong anyway (they failed in cases where str(n)dupa was an
actual function, not a macro).

Instead, we replace them depending on context with alloca+memcpy+strlen
or a static buffer (used in contexts where we are sure that the buffer
will contain the string entirely)

@fix
2015-05-11 16:45:30 +01:00
Yomi 413463d2cd Fix misspelling in e_client.h
Summary: Fix misspelling in e_client.h

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2477
2015-05-07 19:01:05 -04:00
Yomi aa56794304 Fix misspelling in e_randr2.c
Summary: Fix misspelling in e_randr2.c

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2476
2015-05-07 18:41:11 -04:00
Chris Michael 8039ecb9b7 make e_acpi_lid_is_closed function callable from wl_drm module
Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:44:22 -04:00
Chris Michael 0a94e8ba71 enlightenment: Make E build again with EFL from git
sed -i 's/EAPI/E_API/g'

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-07 15:13:10 -04:00
Chris Michael 93971bb6fc Fix T2385 : internal windows not showing resize cursor
If we are going to set the internal elm windows to borderless and
handle frames inside E, then we need to also unset any existing
pointer objects which may be on the wayland Ecore_Evas.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-05-04 12:40:06 -04:00
Yomi 96ba030edb Correct misspelling.
Summary:
Correct misspelling.
Changes: Fix misspelling in e_desk.c

     src/bin/e_desk.c

Reviewers: zmike, raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2466
2015-05-03 17:45:17 -04:00
Jean Guyomarc'h 385a06bd02 e_ipc: fix creation of IPC server when $DISPLAY is a path
Summary:
Some implementations of the X server (e.g. Xquartz) define their $DISPLAY
as a path. Since ecore_ipc_server_add() does not create non-existant
directories, and since it may not worth to hide the socket in a complex
path, this patch aims at reducing the $DISPLAY by only keeping its basename.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2465
2015-05-02 10:05:00 -04:00
Mike Blumenkrantz 038df92cdd only apply fwin focus to main efm object if no icon is editing 2015-04-30 16:06:09 -04:00
Mike Blumenkrantz 9976e1610a add efm function for getting an editing icon 2015-04-30 16:05:55 -04:00
Mike Blumenkrantz 4dee742079 don't destroy efm icon entry on client focus-in if icon's client is being focused 2015-04-30 16:05:21 -04:00
Mike Blumenkrantz e24666b929 fix comp input ungrabbing to read more clearly and not pop nocomp wrongly 2015-04-30 14:50:20 -04:00
Mike Blumenkrantz e1063c196b prune module config list when loading a module
it's somehow possible to get multiple instances of a module in the config.
since I don't know whether this is a current or past problem, prune the list
on every module load to remove subsequent instances of the module

fix T2181
2015-04-30 14:39:28 -04:00
Mike Blumenkrantz 9887db64e8 try hicolor icon theme as fallback for fdo icon setting if user's theme fails
fix T2142
2015-04-30 12:32:31 -04:00
Mike Blumenkrantz b4e41d52c5 force visibility on clients before attempting to hide them
this ensures that edje visibility states get reset in the event of toggling
visibility extremely quickly

probably fixes T2260
2015-04-29 17:21:14 -04:00
Mike Blumenkrantz 719b2baeba only apply mouse down focus events if a binding did not run on the same event
fixes the case of enabling "raise on click" and also having a mouse binding
for "lower on click" active

fix T2364
2015-04-29 17:15:43 -04:00
Mike Blumenkrantz cb9ab4e1f4 freeze evas events on clients during keyboard move/resize actions
fix T2112
2015-04-29 17:02:36 -04:00
Mike Blumenkrantz a41aa387f3 rename client menu move/resize items to indicate real function
ref T2112
2015-04-29 17:02:16 -04:00
Mike Blumenkrantz 2e0bb7dc36 freeze comp object edjes while not hidden
requested by cedric
2015-04-29 12:55:42 -04:00
Carsten Haitzler 27cf0d873c e_place - dont need extrra zone check here anymore 2015-04-28 07:51:35 +09:00
Carsten Haitzler 871fed7493 e_shelf - check visiblity with zone and desk FIRST not later
es->cfg->desk_show_mode if false (default) implies a shelf is always
visible - true, as it's sticky (visible on all desktops). but this
didn't check zone. check zone first THEN this.
2015-04-28 07:51:35 +09:00
Mike Blumenkrantz 505b4551bb bump modapi version
lots of changes lately, may as well force rebuilds
2015-04-27 15:42:28 -04:00
Mike Blumenkrantz 5ae00e6525 redo drop handlers to take an E_Object and Evas_Object
temp change to fix crashing when closing fwins with ctrl+w
2015-04-27 15:39:43 -04:00
Mike Blumenkrantz b632afa546 more accurately determine whether a mouse grab is active in some parts of e 2015-04-27 14:32:19 -04:00
Mike Blumenkrantz 0c7ff0b0e9 add comp mouse grab detection function 2015-04-27 14:32:05 -04:00
Mike Blumenkrantz 76eec883b7 add e_grabinput_mouse_win_get() 2015-04-27 14:31:52 -04:00
Mike Blumenkrantz 1d6749e210 only allow efm key actions if key grab does not exist 2015-04-27 14:26:33 -04:00
Mike Blumenkrantz c7bdf6d992 add comp util function for determining whether the keyboard has been grabbed 2015-04-27 14:21:33 -04:00
Mike Blumenkrantz ff5b06b79d fix MANAGER context keybinds to work with rootless compositors 2015-04-27 14:11:05 -04:00
Mike Blumenkrantz e4298517dd add internal win trap to set override property on windows 2015-04-27 13:56:56 -04:00
Mike Blumenkrantz 59ea27e819 set internal win icccm name/class/title during win trap show
wl clients have no concept of icccm name, so this is the only way to set it

also, setting it here makes it available sooner for other functionalities
2015-04-27 13:55:47 -04:00
Mike Blumenkrantz 0d439345c1 set focus on comp autoclose objects
fix T2114
2015-04-27 13:20:52 -04:00
Mike Blumenkrantz b9c4171ab1 do not pass key events through autoclose handler 2015-04-27 13:04:53 -04:00
Mike Blumenkrantz ee44d29ebc ensure client max w/h props are set before applying them to client geom 2015-04-27 12:30:29 -04:00
Carsten Haitzler 969541a93c e auto-placement - don't include shelves from other screens
unbeknownst to anyone e was placing around shelvs on OTHER screens...
this ended up with some .. odd results every now and again.

@fix
2015-04-27 16:54:15 +09:00
Mike Blumenkrantz fd558491fd don't set e_comp->root for wl compositors
root is the root window. wl compositors do not have root windows.
2015-04-24 14:57:05 -04:00
Mike Blumenkrantz d0f48e6441 fix comp init failure case 2015-04-24 14:12:51 -04:00
Mike Blumenkrantz 3e50235e5b fix comp fake layer init for wl compositors
fix T2363
2015-04-24 14:12:44 -04:00
Mike Blumenkrantz 9c573a49ac fix internal win pixmap id int size in show trap 2015-04-23 12:35:22 -04:00
Mike Blumenkrantz 97a1642222 fix typo when setting event state in e_randr2_screen_refresh_queue()
a non-event should not unset this variable
2015-04-23 08:33:20 -04:00
Mike Blumenkrantz 4afb4b8fe9 simplify comp_x screen setup
we only care about the first root now, no point getting all the roots
2015-04-23 08:27:45 -04:00
Mike Blumenkrantz 0c0d481e4e check module name existence before reading from it
CID 1295427
2015-04-23 08:23:13 -04:00
Mike Blumenkrantz a86fe60d3a use const lists for drm devices in signal handlers 2015-04-22 21:20:57 -04:00
Mike Blumenkrantz a452baafca move comp_x screen setup code into e_randr
this was not x-specific, so move it for use in wl compositors
2015-04-22 21:20:57 -04:00
Mike Blumenkrantz e64998b042 resize comp canvas on e_comp_canvas_init()
remove unnecessary call in wl drm output module
2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 05d87a9b30 fix module blocking for wl modules
these should never be saved to or loaded from the config
2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 4b1925dadf init randr during wayland init...always 2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 18c34ed151 change comp type check at start of e_comp_wl_init()
at present, this value will be set to either TYPE_NONE if no valid
compositor has been created or TYPE_X if running a wl compositor inside
an x11 compositor
2015-04-22 21:20:57 -04:00
Mike Blumenkrantz 15540c01e4 use randr for screen setup in wl-x11 output module
enabling this module requires that e is linked against ecore-x to
allow screen management
2015-04-22 21:20:53 -04:00
Mike Blumenkrantz 89ae59b407 always add e_randr2.c to e build
randr no longer requires x11
2015-04-22 21:19:00 -04:00
Mike Blumenkrantz a4ea6e7f23 add a small screen management interface to E_Comp, remove hardcoded x11 randr calls
this interface is extremely basic and should allow easy additions for other display
backends
2015-04-22 21:19:00 -04:00
Mike Blumenkrantz 8c6ec83e43 break out comp_x gl/sw canvas creation into external function 2015-04-22 21:18:53 -04:00
Mike Blumenkrantz 36ea1ba372 move comp_x randr init to screen init function 2015-04-22 21:18:53 -04:00
Mike Blumenkrantz 3ac3e9bc71 ensure valid strings are send when sending wl output geometry 2015-04-22 21:18:53 -04:00
Mike Blumenkrantz df4ada7e75 fix ecore-x cflags/libs inclusion for e binary
these variables will always exist
2015-04-22 21:18:53 -04:00
Mike Blumenkrantz e383b5b55a always register E_EVENT_RANDR_CHANGE
failing to register this will cause event handlers for it to fail
on creation
2015-04-22 21:18:53 -04:00
Mike Blumenkrantz e1181c4d03 create e_comp during e_comp_init, set comp_type automatically
this simplifies comp creation slightly
2015-04-22 21:18:53 -04:00
Mike Blumenkrantz de0b1b2d39 add E_PIXMAP_TYPE_NONE
null type currently only used during comp init
2015-04-22 21:18:42 -04:00
Mike Blumenkrantz 881e0ab805 move all x11-related randr code into e_comp_x_randr.c 2015-04-22 16:16:05 -04:00
Mike Blumenkrantz 7104e637ef _config_screen_find() -> e_randr2_config_screen_find() 2015-04-22 16:07:58 -04:00
Mike Blumenkrantz b4e65519d1 move acpi lid status tracking from e_randr to e_acpi 2015-04-22 16:05:16 -04:00
Mike Blumenkrantz 853d04592e move e_randr internal screen changing timer -> e_randr2_screen_refresh_queue() 2015-04-22 16:04:36 -04:00
Mike Blumenkrantz 98068e9b9c add e_acpi_lid_is_closed() for returning cached state of computer lid 2015-04-22 15:50:05 -04:00
Chris Michael 57611c6d2f e-comp-wl: Init randr if we are not wayland only
This is needed for the wl-x11 module

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-22 10:46:41 -04:00
Mike Blumenkrantz 0bad7b6025 unadjust frame coords when calculating wl surface placement during commit
ec->y -> unadjust -> ec->client.y
2015-04-21 16:19:30 -04:00
Mike Blumenkrantz f254531182 use pointer hash for wl pixmaps 2015-04-21 15:57:18 -04:00
Mike Blumenkrantz f276023e71 pass surface resource when creating wl surface pixmaps 2015-04-21 15:41:10 -04:00
Mike Blumenkrantz e869cb9649 disable client color editor for non-X clients for now 2015-04-21 15:21:19 -04:00
Mike Blumenkrantz 96f07bff8a wl client pixmaps now use a different method for creating the pixmap id 2015-04-21 15:19:20 -04:00
Mike Blumenkrantz 6e222cede8 add wl client event callbacks at lower priority
this ensures that bindings will activate before events are passed to clients
2015-04-21 15:17:56 -04:00
Mike Blumenkrantz b825af34cf use client geom for comp object centering functions if ec->new_client is set 2015-04-21 15:05:25 -04:00
Chris Michael 9b7358aa32 e-comp-wl: Don't crash if we fail to create a new e_client
This "should" fix T2344 crashing, however I suppose a better question
is ... why is e_client_new returning NULL when it Does find the client
already in the hash...

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-04-21 09:38:00 -04:00
Conrad Meyer 90fe5a4d0d e_auth: Add suid helper for lokker own-pw checking on FreeBSD
Summary:
PAM on FreeBSD, unlike on Linux, does not allow users to check their own
password. Instead, we need a suid helper to do it for us. Add such a
helper on FreeBSD.

For now, it is limited to checking users in the local password database
(traditional Unix passwd file). This could and should be extended to use
PAM in a later patch.

Test Plan:
Tested empty pw, wrong pw, correct pw at lock screen; observed correct behavior
in each instance.

Reviewers: q66, zmike

Reviewed By: q66, zmike

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D2355
2015-04-21 13:11:56 +01:00
Tom Hacohen 99b8d84485 Auth: try harder when clearing passwords.
Based on http://www.daemonology.net/blog/2014-09-04-how-to-zero-a-buffer.html

Thanks again to Matthew Garrett, for pointing this out on twitter.
2015-04-21 10:45:01 +01:00
Tom Hacohen acfdda6c7f E auth: improve clearing out passwords from memory.
Optimising compilers (like gcc/clang with -O1 or above) were optimising
out the memset(). Until link time optimisations are good enough, this
will prevent them from doing so. The best solution would be to use
memset_s() (c11), though it's not readily available yet. This is the
first step towards using memset_s() with a fallback for systems who
don't have it. A better solution, is to put it in Eina, to prevent LTO
completely. This will have to be done after the EFL release.
Even this is not entirely safe though, but at least it protects us from
some memory disclosure issues.

This doesn't solve the fact that we may store a copy of the password in
other places, like the input system. We need to address that too.

Thanks to Matthew Garrett for pointing this out or Twitter.
2015-04-21 10:19:48 +01:00
Carsten Haitzler 9eaac75ae2 e - e_client - fix added printf
665caad451 fix added a printf i didn't
notice - fix.
2015-04-21 11:00:24 +09:00
Carsten Haitzler 665caad451 e client - desk wait - ref it properly and clean up delfn
delfn's on desks being referred to as profile.wait_desk were never
cleared when client was freed. als the desk itself never got an obj
reference - fix that and ref/unref it.
2015-04-21 09:36:33 +09:00
Carsten Haitzler c746beb202 e - xsettings - calloc buffer since we leave 3 of 4 bytes unset
the first 4 bytes is a msb/lsb thing for xsetttings - we ignore 3 of
the 4 bytes. thus we should just calloc the whole buffer to ensure its 0
2015-04-21 08:52:19 +09:00
Derek Foreman 1fb1f17db0 Fix wayland compositor on 32 bit systems
Summary:
_e_elm_win_trap_show() treats Ecore_Window as a 64bit data type when
it's actually the same size as the system's pointer type.

 #24HourFullPowerNoToiletNoShower

Reviewers: devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2388

fix T2194
2015-04-20 18:18:20 -04:00
Mike Blumenkrantz 12d6cf8f3b fix submenu visibility during scroll
sometimes while quickly moving the cursor through menu items with submenus
the visibility flag would toggle more quickly than the menu object's visibility.
this is no longer the case
2015-04-20 18:08:07 -04:00
Jean Guyomarc'h ba975e702f e_backlight_main: fix compiling when not having Eeze
Summary:
EINA_UNUSED is defined in Eina. Since we are not using the program at all,
let's void main()'s arguments instead of trying to ignore them.

Test Plan: tested only on OSX, unbreaks the build.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2387
2015-04-20 17:03:22 -04:00
Mike Blumenkrantz ea7ec93af8 clear app menu cache any time a desktop is edited internally
ref T2271
2015-04-20 16:04:48 -04:00
Mike Blumenkrantz 3eaf4e8638 add function for clearing app menu cache
ref T2271
2015-04-20 16:04:31 -04:00
Mike Blumenkrantz 934d541795 use client geometry for starting unmaximize calculations
the resize operations in this function operate off client geometry, so
stop using frame geometry

fix T2170
2015-04-20 14:32:21 -04:00
Mike Blumenkrantz 14f44ef6e3 fix pixmap image clearing based on pixmap type
!@%!@$#!# borkerhorns!!!!!!

invalidates T2291
2015-04-16 14:39:09 -04:00
Stefan Schmidt 83572a3edb e_client: Remove self assignment from e_comp
Hopefully the last one of these self assignments.

CID 1291840
2015-04-16 17:00:08 +02:00
Mike Blumenkrantz af59e95b28 fix return value in backlight helper exe on non-freebsd systems
ref D2337
2015-04-14 20:37:47 -04:00
Mike Blumenkrantz 5dd146e7e4 fix nocomp_override conditional which would inaccurately toggle nocomp
hooray gcc 5.0
2015-04-14 20:26:21 -04:00
Conrad Meyer 4fc5495f4e backlight: Use basic ACPI sysctl knob on FreeBSD (kernel)
Summary:
Unconditionally build the suid-helper _backlight program; conditionalize
behavior on Eeze, FreeBSD (doing nothing on neither). Add logic to set
the FreeBSD sysctl in a similar manner to udev devices on Linux.

Add _bl_sys_find/_get helpers for FreeBSD that check for and consult the
video ACPI sysctl.

Test Plan:
Seems to work okay on my laptop (with EINA_CPU_FAKE=1 to workaround a threadq
race that I believe is unrelated -- T2287).

Reviewers: zmike, q66

Reviewed By: q66

Subscribers: cedric, seoz

Differential Revision: https://phab.enlightenment.org/D2337
2015-04-14 14:20:33 +01:00
Mike Blumenkrantz 785cb47b89 set E_Exec_Instance desktop during client idler if none present
ref T2284
2015-04-13 16:16:37 -04:00
Mike Blumenkrantz 668de186ac fix desktop editor entry widget parenting
fix T2283
2015-04-13 15:46:00 -04:00
Mike Blumenkrantz db9348c16f do not attempt to re-center fullscreen/maximized internal windows
fix T2279
2015-04-13 15:39:30 -04:00