Commit Graph

239 Commits

Author SHA1 Message Date
Mike Blumenkrantz 4b2e75176b improve menu hiding and autoclose
remove menu object from autoclose (if set) and ensure that only the
intended menu is deactivated in the autoclose callback

this fixes some cases where the wrong menu could be closed (or not closed)
due to race conditions with ecore and evas events
2016-01-14 15:13:57 -05:00
Chris Michael 7b79e03937 Fix e_menu trying to swallow an object from a different canvas
_e_menu_realize was trying to swallow the menu->container_object into
the menu->bg_object, but the menu->bg_object was being created on the
compositor canvas, and the container object was being created on the
e_comp->elm_win.

With recent EFL changes, this causes an abort inside Evas.

To fix this, set the menu->evas to be the Evas from the e_comp->elm_win.

Signed-off-by: Chris Michael <cp.michael@samsung.com>
2015-10-21 10:26:18 -04:00
Mike Blumenkrantz 2cdb5a3b3f feed mouse-up event during mouse down on menus
this fixes the case where the mouse is moved while the mouse is pressed
so that the selected menu item will continue to follow the mouse

fix T2127
2015-08-19 15:03:50 -04:00
Mike Blumenkrantz f2f4b65ead move menu mouse-up feed util function to E_API in comp canvas 2015-08-05 17:26:50 -04:00
Yomi 0dc33a5aeb Fix misspellings in E's files.
Summary: Fix misspellings and spaces in E's files.

Reviewers: zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2676
2015-06-16 16:10:21 -04:00
Carsten Haitzler 6289eba6a4 e menu - an extra object ref causes menus to never be freed
this has been in e for ages - someone not noticed, but this fixes
visual artifacts of left over menus on the top-left. this extra ref
really makes no sense. it's not like this ref is then accomoanied by a
matching unref somewhere else (after much debugging).

@fix
2015-06-10 21:32:01 +09:00
MinJeong Kim 20871a1e8f e_menu: remove an unnecessary comparison
Summary:
Remove an unnecessary comparison.
It fixes coverity CID 1291841 Same on both sides.
@fix

Reviewers: raster, devilhorns, zmike

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D2523
2015-05-18 08:36:09 -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
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
Mike Blumenkrantz 471dcb24cb __UNUSED__ -> EINA_UNUSED
this has been bugging me forever. __UNUSED__ is no longer a valid macro here.
2015-03-18 18:09:09 -04:00
Mike Blumenkrantz ba7c1ac49c remove E_Zone->comp member 2015-03-13 17:44:24 -04:00
Mike Blumenkrantz 1736d1ecb9 e_client functions no longer require E_Comp param 2015-03-13 16:53:19 -04:00
Mike Blumenkrantz 1fe1c94245 comp canvas functions no longer require an E_Comp param 2015-03-13 16:07:08 -04:00
Carsten Haitzler 6097f06b26 e - menus - fix submenu popup direction when zones are not at 0 y 2015-02-25 15:55:08 +09:00
Carsten Haitzler 03c53655ce e - menus - fix autoscroll on zones not at 0 y... 2015-02-25 15:31:00 +09:00
Mike Blumenkrantz f691a8fa18 fix elm box parenting 2015-01-20 19:20:04 -05:00
Mike Blumenkrantz c8d58b30f3 de-e_comp_get()ify e_menu 2015-01-14 20:48:29 -05:00
Duna Oh 576ec9bdc4 fix crash when activating menu that is not in range
Summary: add the condition check code if the pressed key is not in range of menu items

Test Plan:
(1) Left-click on the desktop to bring up the menu.
(2) Press down the number key to activate the menu item.
(3) When you press down the number key that is not in range, you will see the segmentation error.

below is the crash log which I encoutered.
-------------------------------------------------------------------
Program received signal SIGSEGV, Segmentation fault.
_e_menu_item_activate_nth (n=n@entry=5) at src/bin/e_menu.c:2318
2318       _e_menu_item_ensure_onscreen(mi);

Reviewers: zmike, gwanglim, raster

Reviewed By: raster

Subscribers: cedric

Differential Revision: https://phab.enlightenment.org/D1845
2015-01-09 14:51:40 +09:00
Mike Blumenkrantz a11e8d5f2e e_box -> elm_box conversion
the next installment in the exciting adventure game Elementary Wars!

happy new year from #teamborker
2015-01-01 17:45:34 -05:00
Mike Blumenkrantz fd6f686467 move isedje() e_util and simplify/inline 2014-07-03 10:45:59 -04:00
Carsten Haitzler 7cce5642d6 e menus - check if its an edje obj without having complaints or using eo 2014-07-01 16:26:45 +09:00
Carsten Haitzler 7fe18a6954 unbreak enlightenment compile due to eo usage
so e is using eo... and something in eo changes... and e fails to
compile entirely.... there are hacks to use eo... and this is not good.

eo is still in a beta state. that means any usage of it  can (and
will) break. this is a problem for e. if e uses eo, then eo breaks in
an efl upgrade, e breaks. we can't really have that. we already hit
this problem in terminology with the app server code in elm. so let's
just not use eo in e until it's stable.

this removes eo usage in all places, with the e_menu code having a
small isedje() func due to some of its code paths doing special things
based on if the obj is an edje one or not as opposed to just a simple
"only emit if its an edje obj".
2014-07-01 08:37:33 +09:00
Cedric BAIL 3f9af38da2 edje: remove use of deprecated functions. 2014-06-07 21:10:55 +02:00
Mike Blumenkrantz 67855482fc update eo class names, add hack for 1.10 class name compat 2014-06-04 09:28:17 -04:00
Mike Blumenkrantz d8aa488096 completely revert all eo/eolian usage
this was a neat experiment, but apparently it's not going to be usable for a long time in anything outside efl/elm

This reverts commits f87b9900fa, a49cede790, 81038f8d02, 47cfb31752.
2014-06-04 07:27:50 -04:00
Tom Hacohen f87b9900fa Update code to use the new class names generated by eolian. 2014-06-03 11:55:02 +01:00
Carsten Haitzler 4cce0080b8 fix resent eo changes to e that break updating labels and toggles
this fixes D1172
2014-04-18 09:53:00 +09:00
Mike Blumenkrantz daa98e867d fix lots of edje emits on non-edje objects 2014-03-27 16:47:18 -04:00
Mike Blumenkrantz 24296fa005 use eo to shut up harmless eo menu errors 2014-03-24 12:34:07 -04:00
Mike Blumenkrantz b8a3e1ed4f fix probably-impossible divide-by-zero in menu item layout
CID 1187924
2014-03-13 11:41:17 -04:00
Mike Blumenkrantz 9f3f5e29d1 bugfix: ensure use of non-garbage values for menu item icon placeholders
CID 1039769, 1039768
2014-03-13 11:11:14 -04:00
Daniel Kolesa 811c57cfaf enlightenment: fix menu placement 2014-01-30 12:17:54 +00:00
Mike Blumenkrantz 9a3ea2d1bb use regular comp grabs for menu 2014-01-22 22:14:33 -05:00
Mike Blumenkrantz dd34319a19 only deactivate all menus on mouse down if active menu is present
T798
2014-01-17 11:21:20 -05:00
Mike Blumenkrantz 12d7405a0f huge wl fixup (wayland clients actually working again)
* try to clear up build system for separating out ecore-x

* add #ifdefs for lots of ecore-x stuff

* break out some internal e wl functions for reuse in api

* store wl surface buffers as an inlist

* add protocol-specific client compositor data

** move lots of X client attributes here

* add pixmap type checks to a number of X-specific things, such as grabinput, to block them for non-X clients

* rearrange startup order to work with wayland

* move X screensaver code to e_comp_x

* flag modules still requiring X with -DNEED_X
2014-01-14 20:28:57 -05:00
Mike Blumenkrantz 86656e4df9 compositor rewrite / charlie-foxtrot situation
huge fustercluck commit because there wasn't really a way to separate out the changes. better to just rip it all out at once.

* compositor and window management completely rewritten. this was the goal for E19, but it pretty much required everything existing to be scrapped since it wasn't optimized, streamlined, or sensible. now instead of having the compositor strapped to the window manager like an outboard motor, it's housed more like an automobile engine.

** various comp structs have been merged into other places (eg. E_Comp_Zone is now just part of E_Zone where applicable), leading to a large deduplication of attributes

** awful E_Comp_Win is totally dead, having been replaced with e_comp_object smart objects which work just like normal canvas objects

** protocol-specific window management and compositor functionality is now kept exclusively in backend files

** e_pixmap api provides generic client finding and rendering api

** screen/xinerama screens are now provided directly by compositor on startup and re-set on change

** e_comp_render_update finally replaced with eina_tiler

** wayland compositor no longer creates X windows

** compositor e_layout removed entirely

* e_container is gone. this was made unnecessary in E18, but I kept it to avoid having too much code churn in one release. its sole purpose was to catch some events and handle window stacking, both of which are now just done by the compositor infra

* e_manager is just for screensaver and keybind stuff now, possibly remove later?

* e_border is gone along with a lot of its api. e_client has replaced it, and e_client has been rewritten completely; some parts may be similar, but the design now relies upon having a functional compositor

** window configuration/focus functions are all removed. all windows are now managed solely with evas_object_X functions on the "frame" member of a client, just as any other canvas object can be managed.

*** do NOT set interceptors on a client's comp_object. seriously.

* startup order rewritten: compositor now starts much earlier, other things just use attrs and members of the compositor

* ecore_x_pointer_xy_get usage replaced with ecore_evas_pointer_xy_get

* e_popup is totally gone, existing usage replaced by e_comp_object_util_add where applicable, otherwise just placed normally on the canvas

* deskmirror is (more) broken for now

* illume is totally fucked

* Ecore_X_Window replaced with Ecore_Window in most cases

* edge binding XWindows replaced with regular canvas objects

* some E_Win functionality has changed such that delete callbacks are now correctly called in ALL cases. various dialogs have been updated to not crash as a result

comp files and descriptions:

e_comp.c - overall compositor functions, rendering/update loop, shape cutting

e_comp_x.c - X window management and compositor functionality

e_comp_wl.c - Wayland surface management and compositor functionality

e_comp_canvas.c - general compositor canvas functions and utilities

e_comp_object.c - E_Client->frame member for managing clients as Evas_Objects, utility functions for adding objects to the compositor rendering systems

additional authors: ivan.briano@intel.com

feature: new compositor

removal: e_border, e_container, e_popup
2014-01-14 20:22:02 -05:00
Mike Blumenkrantz 25ab377291 unbreak menu dnd 2013-12-06 11:44:45 -05:00
Mike Blumenkrantz b3bc99d1b2 fix menu race condition crash related to screen edges
previously, this conditional would be called on most new submenus, even if the submenu's parent item was the previous item and its menu hadn't been set yet. hours of small mouse movements revealed that this should never be called when the parent item has not yet been set
2013-12-01 11:32:11 -05:00
Carsten Haitzler 2a5443b2cb menu - fix dangling menu job not nulling job ref
this should fix T579
2013-11-27 09:13:37 +09:00
Carsten Haitzler 19da294e8d gfix focus display in click-to-focus with keyboard triggered menus 2013-10-18 19:49:05 +09:00
discomfitor 8b57301add ensure post_deactivate menu callbacks run when hiding all menus
fixes shelf autohiding in some cases
2013-09-05 17:26:22 +01:00
Mike Blumenkrantz c507b36abf outdent small block in menu idler 2013-06-21 10:28:22 +01:00
Mike Blumenkrantz bc338ab390 fix menu crash when trying to show a menu that isn't ready to be shown 2013-06-21 10:27:18 +01:00
Mike Blumenkrantz bf12a34da0 fix a corner case menu crash when a submenu is created directly above its parent 2013-06-12 13:55:08 +01:00
Mike Blumenkrantz 595ba0859d fix menu item dnd grabber 2013-06-12 13:35:55 +01:00
discomfitor 0e0b20c075 block multiple menu deactivate callbacks 2013-05-18 19:39:52 +01:00
Mike Blumenkrantz 506cb8046d force mouse up feed on menu ungrab to ensure it gets received
issue described in T89
2013-05-08 13:26:25 +01:00
Mike Blumenkrantz f2fe52a074 menus are no longer enrolled in the same school as mexican jumping beans 2013-04-25 09:20:22 +01:00
Mike Blumenkrantz b702eddfd1 use new zoomap function to set solidness on comp win reshadow 2013-04-17 08:07:11 +01:00
Mike Blumenkrantz a4d13328e9 put zoomap shaped/solid edc stuff back for menus, let comp wins use it more generally 2013-04-17 06:32:49 +01:00