Commit Graph

4582 Commits

Author SHA1 Message Date
Gustavo Sverzut Barbieri f3c1679442 make it easy to run e under valgrind and debug crashes.
this should help us in near future:

  * -valgrind[=MODE], to run under valgrind and toggle interesting
     options as we often request users to give us valgrind logs but
     they're often running valgrind on wrong binaries and with wrong
     parameters. See enlightenment_start -help for more, but in sort:
     -valgrind=all should give us enough information.

  * -valgrind-log-file=path, so the log will not mix with lots of
     output we do.

  * debug: on crashes, always list traceback (execinfo/glibc
    functions) and check if gdb exists, if so ask it to print out
    traceback of all threads to stdout. gdb will be detached as soon
    as messages were printed and everything should work without gdb as
    well.



SVN revision: 41309
2009-07-11 16:27:37 +00:00
Hannes Janetzek 315133303e e17 exehist: do not add file params to exhist
SVN revision: 41268
2009-07-07 17:38:42 +00:00
Carsten Haitzler 00819897b6 wallpaper2 - select wallpaper that is used on start
version config - literally keep the last 9 config revisions (10 including the
current) and if config gets corrupted...it auto-falls back to the last good
one.



SVN revision: 41252
2009-07-06 09:43:58 +00:00
Christopher Michael 584a95b6ad Fix comment spelling.
SVN revision: 41250
2009-07-04 19:15:34 +00:00
Christopher Michael c37b22a39f Fix ticket #343 (autoscroll and resizable not being set after restart).
Formatting.
Whitespace Removal.
Variable cleanup.
Add missing 'static' declaration on private function.
Move EAPI functions to be together in the source before local functions.



SVN revision: 41246
2009-07-04 01:44:34 +00:00
semernin 5d24f7948e 1. New field in E_Fm2_Op_Registry_Entry named dialog, that hold pointer
to error, abort or overwrite dialogs.
2. Glyph in fileman_opinfo theme that show have or not operation linked
   filemanager window.
3. When click on operation on fileman_opinfo, then linked efm window
   raised or attention dialog if error exist.


SVN revision: 41229
2009-07-01 18:35:26 +00:00
Cedric BAIL b4c393ccea * e: Remove not correctly initialized warning.
SVN revision: 41225
2009-06-30 09:27:03 +00:00
semernin 2f76dd5d99 List of changes:
1. Gadcon sities:
      -- 'E_Gadcon_Site' enum to list all available sities,
      -- added 'is_site' callback for distinguish gadcon sities,
      -- 'e_gadcon_site_is_*' helpers written to use in gadget modules,
      -- gadcon config dialogs modified to show only gadgets that appropriate
         to selected gadcon site,
      -- all gadget modules updated for using new callback.
      
      When callback is not provided in module, then gadget can be used in 
      any gadcon site.
      
   2. Filemanager:
      -- added error icon to unexisting path dialog,
      -- added callback 'func.abort' to 'E_Fm2_Op_Registry_Entry' to specify
         abort operation sequence (if not provided, then operation is not
         cancelable),
      -- added parameter to 'e_fm2_op_registry_entry_add' to specify abort
         method on construct 'E_Fm2_Op_Registry_Entry' or make non-cancelable
         operation if this function is not provided,
      -- added 'e_fm2_operation_abort' call to cancel efm2 operation,
      -- added method '_e_fm2_operation_abort_internal' that represent efm2
         default handler of operation cancelling,
      -- 'done' and 'total' fields of 'E_Fm2_Op_Registry_Entry' changed to
         off_t type, also all message handlers modified to work with it
         (to show progress for large files correctly),
      -- improved file operation progress processing,
      -- added cancel button to operation progress gadget in filemanager window,
      -- added delete file glyph to operation progress gadget,
      -- improved status message for efm2 operation progress.

   3. Filemanager slave:
      -- fixed critical bug in message handling via stdin/stdout,
      -- fixed critical bug in removing task from list,
      -- improved 'E_FM_OP_ABORT' handling,
      -- fix rollback counting on moving files.

   4. Fileman_opinfo module:
      -- a new theme writed: status string and gadget for view operation status
         in summary and detail modes,
      -- summary mode: operation glyph, state message, progressbar, abort button,
      -- detail mode: all for summary + from filename, to filename,
      -- summary/detailed button works as trigger,
      -- added source of module theme and used images.
      
   4. Pathbar module:
      -- non-critical fix, just for safety.

   Also patch contains several minor updates to serve main task.


SVN revision: 41224
2009-06-29 14:38:03 +00:00
Davide Andreoli 6efe302d22 * Also load icons from a given full path, not only by the theme-name.
This fix some (not showed) icons, expecially with the configmenu module.

SVN revision: 41177
2009-06-23 20:52:04 +00:00
Gustavo Sverzut Barbieri 413729a142 get zone from gadcon.
The old code that query the zone based on x,y was causing me
segfaults. When battery module was in a hidden shelf, the position was
outside any zone and then segmentation fault.

As far as I understand, gcc->gadcon->zone should always exist and
always be correct, but I don't have xinerama setup now to confirm
that.

If you know this is wrong, let me know!



SVN revision: 41147
2009-06-21 21:18:44 +00:00
Gustavo Sverzut Barbieri c00f5c9b06 Let's at least check for NULL pointer.
SVN revision: 41145
2009-06-21 21:14:49 +00:00
Gustavo Sverzut Barbieri 00aa72ef47 e_fm2: avoid invalid mouse-up.
Here's another patch I've made for efm2 to fix an issue that I've
often experienced using it (in Illume) with a touch-screen
device (Freerunner).  It often happens a very strange thing: I
try to finger-scroll a bottom icon (it must be on the latest row)
moving my thumb up, well... The the scroller doesn't scroll, but
wherever and whenever I release my finger, the selected icon is
executed!

I don't really know to what is this due (the touchscreen seems to
perform correctly by the way), but I've never been able to
replicate it using a mouse in my PC.

Anyway to fix this issue, that could be specific, I've used a
workaround that I think that could be applied for all: it
basically checks if the mouse has been released in the area where
the clicked icon is, before sending a "selected" callback.

It needs the previously attached
e_fm2-single-click-delay-support.patch to be applied correctly.

Going deeply into the real issue I've made some tests, and I got
that this seems mostly due to an evas issue (I figure), since the
e_fm2's scrollframe never sets the evas event flag to:
EVAS_EVENT_FLAG_ON_HOLD
(that would avoid the un-wanted click).
After some debugging there, I've also seen that in this very
particular buggy case the _e_smart_event_mouse_up() and
_e_smart_event_mouse_move() callback functions are never
called (so I figure that evas doesn't add the callbacks at all
for the scrollframe, while they are added in the e_fm2).

Let me know what you think about this... I thing that the Om
users would need a fix like this.

By: Marco Trevisan (Treviño)



SVN revision: 41129
2009-06-20 15:54:52 +00:00
Gustavo Sverzut Barbieri 5fb986a05b avoid unwanted clicks on touch-screen.
avoiding the un-wanted clicks with touch-screen devices (especially if
they aren't so precise); it basically allows to set a time delay to be
awaited (pressing over an icon) before sending a "selected" callback.

Thanks to this, it could be needed a longer pressure to select an item
in the file-manager; useful for embedded/touch-based systems.

By: Marco Trevisan (Treviño)



SVN revision: 41127
2009-06-20 15:49:54 +00:00
Cedric BAIL c82f19e052 * e: Remove all reference to Evas_Data and move to Eina_Bool.
SVN revision: 41080
2009-06-17 13:46:54 +00:00
Gustavo Sverzut Barbieri be4f4af8a9 Do not evaluate deleted borders.
This bug was showing when fast toggling between advanced<->basic in
config dialogs.

Note, however, that there are a remaining alien bug with fast
toggling. It's aborting due adding evas object as member of another
from other canvas, which is not allowed. I tried to debug it and it's
REALLY weird, the advanced or basic create_widgets() are being called
twice, from inside the same function, like if the create_widgets() was
calling itself, but the code do not do that, I traced some that would
happen from e_widget_button_add()!!! Like if we had threads of were
being preempted from nowhere, really strange... seems like a stack
corruption :-(


SVN revision: 41038
2009-06-15 01:33:41 +00:00
Gustavo Sverzut Barbieri 2406757ec9 fix annoying bug with config dialog window layout.
as spotted by manio, toggling between "Basic" and "Advanced" mode was
making the window move (just open Theme dialog and toggle).

Manio suggested a fix by keeping window center between both modes, but
I think that given our top-left to bottom-right reading (LTR) we
better keep the title bar (x,y) intact and avoid full rescan. This can
be weird in small screens where the dialog will not be centered
anymore and that will show easily, but on regular screens this should
not be an issue.

Also spotted that it was wrong when trying to avoid window overflow
(using x instead of y).

PS: I wonder why we destroy and create the window all over again! This
is really annoying, title bar will show the focus animation and you
get lost (need to rescan it again).




SVN revision: 41004
2009-06-10 22:53:00 +00:00
Gustavo Sverzut Barbieri f6af66808f do not segv on executables that return non-zero.
if an executable returns non-zero a dialog will be present with
information, if it was a .desktop file, then it would use the "Name"
field to name the log and all.

However, the .desktop reference was deleted and the dialog would use a
bogus pointer. Now we take a reference insidethe dialog and just
release it on dialog deletion.

Found by manio, fix by me.



SVN revision: 40987
2009-06-09 16:45:59 +00:00
Gustavo Sverzut Barbieri b5d5b3378c do not segfault on empty filename to escape.
Avoid case where e_exec (and possible others) gives
e_util_filename_escape() a NULL parameter, actually another bug, but
does not hurt to safe guard this one.

By: manio



SVN revision: 40979
2009-06-09 10:25:25 +00:00
Gustavo Sverzut Barbieri 537a6e62ca use auto-resize instead of fixed dialog size.
this will help with dialogs in languages with larger labels/text.



SVN revision: 40975
2009-06-08 17:40:46 +00:00
Miculcy Brian d66efb7a84 fix typo
SVN revision: 40957
2009-06-07 22:07:05 +00:00
Gustavo Sverzut Barbieri 310ce61a7e resize first, show last.
This was showing on languages with larger strings, like french.

By: Vincent François.


SVN revision: 40956
2009-06-07 21:25:34 +00:00
Viktor Kojouharov c1dd656e64 remove all traces of the resize callback function. it iss not needed anymore
SVN revision: 40940
2009-06-07 08:56:16 +00:00
Gustavo Sverzut Barbieri 2af9f44b4f efm2 hal handling API - full changes.
1. Added E_FM_OP_EJECT command to e_fm_main. It unmounts volume
   before eject, if it necessary.
2. Added timeouts of mounting/unmounting/ejecting media, and
   it's moved to slave e_fm_main.c. Each timeout will generate
   *_MOUNT_ERROR, *_UNMOUNT_ERROR and *_EJECT_ERROR message.
3. Added auto mount on insert media and auto showing efm2 window
   on mount volume options to filemanager config.
4. Added mounted/unmounted glyphs to efm2 icons and track state
   code. Now each removable device have "M" glyph on icon if mounted
   and "U" when unmounted.
5. Added mount/unmount/eject commands to icon dropdown menu.
6. Russian translation of mew messages.
7. Other bugfixes and improvements for co-operation.

Now, efm2 contains all code to mount/umnount/eject removable media and
all code to provide corresponding user interface.
It can working independently from 'places' or co-operate with it.

By: Sergey Semernin



SVN revision: 40928
2009-06-07 00:00:41 +00:00
Gustavo Sverzut Barbieri 987192c54d fix bugs of gadgets using incorrect zones.
I found strange behavior in my configuration (xinerama - two screens
with two zones). When i select a Enlightenment->Restart from menu the
popups for gadgets on desktop doesn't appear or appear wrongly. After
some time i've found that this depends on on from what screen i am
choosing this enlightenment->restart :)

After some debugging i figured it out:

When restarting enlightenment some gadgets (i.e. calendar) are calling
e_gadgon_popup_new(). Inside that function, zone for popup window
(this zone was used later in ecore_evas_move_resize) is calculated
like that:

{{{
zone = e_util_zone_current_get(e_manager_current_get());
and in e_manager_current_get is: ecore_x_pointer_xy_get()
}}}

... so - i have my answer why restaring from one screen (cursor was on
that screen) and from second screen i have different results...

In other words: during initializing module like calendar - created
zone for popup is assigned depending on current cursor position.

In my patch i've chage this to obtain zone using the gadget position
instead.  But it solves the problem partialy.

Next thing - in function:

e_gadget_popup_show() (which is called later) when calculating popup
position coordinates was calculated using zone:

{{{
pop->gcc->gadcon->zone
}}}

which in my case was always the first (initial) zone - (of course it
was wrong, because i put a gadgets on different screens for testing).
so i changed it to zone of popup window (which was calculated before,
in e_gadgon_popup_new()) and after that everythings works ok :) Zones
for popups are correctly assigned and popups calculation are also ok -
even after restaring enlightenment (tested with cursor on both
screens).

By: manio



SVN revision: 40927
2009-06-06 23:40:58 +00:00
Gustavo Sverzut Barbieri 128126a732 fix typo that would use the incorrect window border icon.
SVN revision: 40906
2009-06-05 18:50:05 +00:00
Viktor Kojouharov 293b3d41dd e_gadcon_popup now responds to changes in the content's size hint changes, and resizes itself accordingly.
with this, the resize func will no longer be needed, if users of the popup set the size_min hint of the content of the popup.


SVN revision: 40864
2009-05-31 15:48:26 +00:00
Christopher Michael 15bfce009e Use E_FREE for _xdnd, created with E_NEW.
SVN revision: 40836
2009-05-26 16:02:49 +00:00
Christopher Michael 7c78ec900e Formatting. Add missing void in function declaration.
SVN revision: 40835
2009-05-26 14:44:19 +00:00
Viktor Kojouharov 0c1f13b9c3 do full size calc when the content is set, not when it is shown
SVN revision: 40813
2009-05-24 10:02:56 +00:00
Gustavo Sverzut Barbieri 804f59e6e5 fix problem with e_gadcon_provider_register() being called from e_modapi_init().
if e_modapi_init() called e_gadcon_provider_register() the module
gc_init() would be called immediately, becore e_modapi_init() finished
and thus mod->data was unset (it's set by E when that function
returns).

most modules did not show this problem since they keep lots of globals
around and use them, but not mixer module. Mixer module did check for
global mixer_mod to be set and also mixer_mod->data, thus exposed this
problem, with "mixer is not able to show on desktop/gadget" but did in
shelves, since it would refuse to load immediately but would be loaded
later at e_shelf_config_new()->e_gadcon_populate().

Now gadcons are populated from an idler, avoiding all these problems
and probably will impact user's perceived load time since it will do
less work before getting to main loop and being able to process
events.


SVN revision: 40714
2009-05-17 23:43:02 +00:00
Gustavo Sverzut Barbieri f583aca207 fix xinerama monitor sorting.
xinerama monitor sorting should consider position and not just size.

Patch by manio, modified to handle y axis as well.



SVN revision: 40712
2009-05-17 21:35:01 +00:00
Gustavo Sverzut Barbieri 97de98a66e Make fallback to parent dir when no permissions.
Now, when "open dirs in place" is active and user haven't permission to
open dir, efm2 fallback to parent directory. Also other events (for ex.
delete)
on dirs opened in efm will cause go to it's parents in efm windows.

Patch to ticket #273.

By Sergey Semernin.



SVN revision: 40711
2009-05-17 21:30:15 +00:00
Christopher Michael d3573bb3da Remove unneeded variables.
SVN revision: 40706
2009-05-17 16:01:41 +00:00
Christopher Michael e56d841f6a Remove need for extra variables. Use E_NEW & E_FREE.
Cleanup Formatting. Remove Whitespace.


SVN revision: 40682
2009-05-15 19:53:25 +00:00
Christopher Michael 898b6f3cae Fix typo, Thanks Viktor :)
SVN revision: 40681
2009-05-15 18:25:55 +00:00
Christopher Michael 6fd36aa8b4 use E_NEW & E_FREE macros
SVN revision: 40680
2009-05-15 18:11:41 +00:00
Christopher Michael 3f11b601c6 Remove some unneeded variables. Formatting & Whitespace removal.
SVN revision: 40679
2009-05-15 17:59:02 +00:00
Carsten Haitzler 87842cb5e7 several patches from sergey etc.
SVN revision: 40668
2009-05-15 11:47:28 +00:00
Carsten Haitzler 3036531147 mount by label first - more useful in real life
SVN revision: 40566
2009-05-09 10:26:12 +00:00
Viktor Kojouharov 648d75caab Larger backgrounds can now be set to scroll whenever a E changes between desks. Kind of like a transition, but uses only one (the first desk's), larger wallpaper instead of several wallpapers for all desks, and it overrides the transition settings if activated.
The option can currently be activated from Virtual Desktops Settings -> Advanced. A better home and preview would be better for these settings.

In more detail, this option can make a wallpaper, larger than the geometry of the zone, scroll appropriately with each desk change. Consider a nice panorama picture, which is as wide as the total desks' width. Then, at most, E will scroll the background by 1 / (number of desks) for each desk change. The direction of the scrolling is dependent on the desk change itself. Also, the user can specify a coefficient of maximum scrolling for each axis. If the coefficient is 0, the wallpaper will not move.

More advanced animations can be constructed with edje. The data item "directional_freedom" "(1|0) (1|0)" can toggle the actual wallpaper scrolling done by E for each axis. A message with the current x/y position, panning w|h, and zone w|h is sent to the background edje with each desk change animation tick. An example embryo script that handles the message, and changes a hypothetical "a1" part in the "e/desktop/background" group is shown below:

         public message(Msg_Type:type, id, ...) {
            if (type == MSG_INT_SET) {
               new x = getarg(2);
               new y = getarg(3);
  //	     new max_x = getarg(4);
  //	     new max_y = getarg(5);
  //	     new w = getarg(6);
  //	     new h = getarg(7);
               custom_state(PART:"a1", "default", 0.0);
               set_state_val(PART:"a1", STATE_FILL_POS, 0.0, 0.0, -x / 4, -y / 4);
               set_state(PART:"a1", "custom", 0.0);
            }
         }




SVN revision: 40543
2009-05-07 18:39:55 +00:00
Gustavo Sverzut Barbieri 080c0be517 minor improvements to dialogs asking to enter presentation mode.
SVN revision: 40521
2009-05-06 12:00:19 +00:00
Carsten Haitzler 4fa7de4c9c 1. fm rename in-place patch. ok for now - probably should fix it up later
2. config module fix



SVN revision: 40508
2009-05-05 14:27:28 +00:00
Massimo Maiurana 586ef62d8d another little typo to fix
SVN revision: 40461
2009-04-29 15:39:00 +00:00
Massimo Maiurana 153904f98d fixed a little typo
SVN revision: 40460
2009-04-29 15:36:12 +00:00
Viktor Kojouharov d9f453e443 improvements to the tabbed e_fwin. changing tabs will not cause a reload, since each tab holds its own fm object.
ctrl+w will close the current tab. if there are no more tabs, the window will be closed


SVN revision: 40447
2009-04-28 17:38:09 +00:00
Massimiliano Calamelli 5f4f968653 Added #define _POSIX_HOST_NAME_MAX for OSes that don't know it (NetBSD in detail)
SVN revision: 40445
2009-04-28 15:50:32 +00:00
Christopher Michael 022e23f4cb Formatting & Whitespace removal
SVN revision: 40417
2009-04-27 15:42:43 +00:00
Gustavo Sverzut Barbieri ddd175a2f2 Ask to enter presentation mode.
If you deactivate screensaver (ie: move mouse) or unlock desklock
within some given threshold, ask user if he would like to enter
presentation mode or even if should increase timeout to next event.

This is also useful when at the office and you quickly move mouse in
order to keep your explanation. If you know your explanation is short,
just hit "increase timeout", otherwise "Yes" to increase timeout.

Increase timeout is a multiplier that will increment the factor on
each dialog answer.

There is an option to stop asking. This can be changed in "Advanced"
versions of screensaver and desklock dialogs.



SVN revision: 40414
2009-04-27 02:54:43 +00:00
Gustavo Sverzut Barbieri f7b1ad0f9b Option to enable desklock after screensaver timeout.
This option will make it possible to lock the screen after some
seconds screensaver started.

It is useful in cases you want a short screensaver and uses screenlock
but often need to unlock it quickly (ie: was talking to someone at the
office, screensaver starts and you would like to quickly avoid
desklock, otherwise need to stop talking, unlock and continue).



SVN revision: 40413
2009-04-27 02:49:50 +00:00
Gustavo Sverzut Barbieri b045f6a244 fix typo.
SVN revision: 40388
2009-04-25 22:12:13 +00:00