this fixes T444 - the display of text is properly top-left aligned
with scrollbars now actually correct too for the text provided (note
that the preview doesnt put ALL text in there. just the first N bytes
which by default is 2048 but can be changed).
Copy and paste bug introduced in the initial port to edbus.
This could be a cause of problems when using e_fm with removable media and udisk.
CID: 1039955
could potentially crash the entire window manager (for a potentially
bad module).
Fixes Phab Ticket T491
Signed-off-by: Chris Michael <cp.michael@samsung.com>
Summary: If cserve2 crashes, enlightenment_start will respawn it again.
Test Plan:
Start E18 (in Xephyr maybe) with E_CSERVE set.
Randomly kill evas_cserve2 and enlightenment, and log out from E.
I need review for this patch as I'm not sure about all the ptrace stuff
lying around.
Reviewers: cedric
CC: raster, zmike
Differential Revision: https://phab.enlightenment.org/D287
Signed-off-by: Cedric Bail <cedric.bail@samsung.com>
Other shell than >=bash-4 and dash does not support '&>' I/O redirection.
Introduce in commit v0.17.0-1871-g18cbd6f
« While at it, I also fixed the piping of stdout and stderr to be nicer. »
After a long and hard battle with the gods of bugs I finally fixed
this stupid hang. I had to dig into the gdb source code, and gdb the
hell out of gdb, but it's now solved.
First of all, we should call gdb with -batch which exits automatically.
This however is not enough to fix it. The bug was that gdb was haning
while trying to set attributes on stdin because it was waiting for input.
This is obviously problematic when running in non-interactive mode, so
I had to pipe /dev/zero to stdin to fix it.
While at it, I also fixed the piping of stdout and stderr to be nicer.
This is a fix to a bug that was happening on my laptop with libreoffice.
When this last one was closed, a segfault was occurring. This was due to
the use of a freed data structure. A pointer to this structure
(instance) was still stored as data of the Ecore_Exe structure.
Now, when the instance is freed, the data of the Ecore_Exe is set to
NULL.
provide a config upgrade path to version 13 which nulls/frees out
theme config (save memory - but more housekeeping), and that also
copeis ofer all files in ~/.e/e/themes to ~/.elementary/themes so you
don't lose themes you personally have and deletes the old e theme dir
if this succeeds.
also remove all #includes of Elementary.h and Emotion.h from single c
files as they are requirements now and in e.h
also remove theme path vars and code as theme path is no longer used.
now e only uses elementary's theme. this is to stop the bitrot and
forking of e's theme vs the unified elm theme that has everything for
e in it already. this obviously makes elm a requirement of e18 on, and
this also notes that emotion is always in efl these days, so its no
longer an option, and ecore-imf is no longer used as edje does the
entires now itself. in future it'll all be elm.
this is a major unification point for themes for elm and e. this will
need some testing, but everything seems to work day-to-day, but theme
selector is untested.
this also removes the theme selector for splash as that is now simply
unified with the same theme as everything else.
if compile time headers (module version) does not match e's version
then modules likely may fail; to work right - so make sure they match
exactly (for release purposes)
pretty sure this doesn't affect anything in e18, but it does break things in a really hard to reproduce setting involving clicking/disabling/focusing widgets simultaneously
enlightenment_fm needs some files that are not in its subdirectory, but
rather are shared with enlightenment.
Possible solutions:
1) Use a non-recursive build for enlightenment_fm.
2) Factor out a convenience library containing necessary files
3) Copy over or link the files to build tree directory during build
For simplicity (3) is implemented here. Some files were not necessary
(e_prefix.c and e_sha1.c) and the others are now linked during build to
it's original location.
Sadly we can't globally enable subdir-objects due to gettext choking on
it so enable at least where it's necessary. Remove the following
warning from build:
src/bin/e_fm/Makefile.am:40: warning: source file '../e_prefix.c' is in a subdirectory,
src/bin/e_fm/Makefile.am:40: but option 'subdir-objects' is disabled
automake: warning: possible forward-incompatibility.
automake: At least a source file is in a subdirectory, but the 'subdir-objects'
automake: automake option hasn't been enabled. For now, the corresponding output
automake: object file(s) will be placed in the top-level directory. However,
automake: this behaviour will change in future Automake versions: they will
automake: unconditionally cause object files to be placed in the same subdirectory
automake: of the corresponding sources.
automake: You are advised to start using 'subdir-objects' option throughout your
automake: project, to avoid future incompatibilities.
src/bin/e_fm/Makefile.am:43: warning: source file '../e_fm_shared_codec.c' is in a subdirectory,
src/bin/e_fm/Makefile.am:43: but option 'subdir-objects' is disabled
src/bin/e_fm/Makefile.am:43: warning: source file '../e_fm_shared_device.c' is in a subdirectory,
src/bin/e_fm/Makefile.am:43: but option 'subdir-objects' is disabled
src/bin/e_fm/Makefile.am:43: warning: source file '../e_user.c' is in a subdirectory,
src/bin/e_fm/Makefile.am:43: but option 'subdir-objects' is disabled
src/bin/e_fm/Makefile.am:43: warning: source file '../e_sha1.c' is in a subdirectory,
src/bin/e_fm/Makefile.am:43: but option 'subdir-objects' is disabled
1) efm fix: last_selection resets when icons are freed
2) When no icon is selected select first on Right/Down press or last on Left/Up keypress
3) Maintain order in range selection from first to last.
buckle up. for the first time in history, a config option is getting removed instead of added.
the reasons for this removal are many, but let's go way back to the beginning and see why it was added:
oh wait, we can't because the commit message (from 2006) is
>> patches that i said were in - commit. (see my reply emails)
>> also finish off a TODO item or 2
reading through the TODO items which were also crossed off in that commit, I'm assuming that this was the "option to NOT raise on focus in click to focus" item.
== REASON 1 ==
the problem here is that there's another, BETTER option called "click raises window" (always_click_to_raise) which does the same thing, except it doesn't totally fuck you when you get a random X focus event, which happens more often than you might think.
this means that, to avoid broken behavior which might cause your windows to spastically raise for a few frames in common cases (using winlist...) with click-to-focus, you have to know that this is the default-enabled option that's fucking you, and you have to remember to manually disable it every time. if you DON'T know that this is the option that's fucking you, and you just see windows randomly raising on their own, you'll probably either ignore it or file a bug, when this is supposed to be a "feature" that actually worked in reverse, since it was intended only for disabling.
== REASON 2 ==
there's also auto-raise, which can be set to 0.0s, which is effectively the same thing since it also triggers on focus but can be configured not to fuck your window stack
== REASON 3 ==
aaand finally, this option makes any sort of pointer focus model impossible to use, since your windows will constantly be raising all over as you move the mouse
tl;dr: I'm removing it, e-dealwithit.gif
there's only more than one manager when we're running true multi-head, which is pretty rare/non-existent with compositing, so we can avoid an X call here by just returning the only possible manager
i got a segv in an strncpy... but the bt missed telling me anything
other than it was in _e_border_eval(). gdb wouldn't help.
Thread 1 (Thread 0xb7859780 (LWP 1377)):
No symbol table info available.
No locals.
No symbol table info available.
No locals.
at /usr/include/i386-linux-gnu/bits/string3.h:121
buf = '\000' <repeats 4095 times>
s = <optimized out>
event = <optimized out>
pnd = <optimized out>
rem_change = 1
send_event = 1
since this is the only strncpy, i can only conclude that something is
fishy about the src or dest buffer, and i can only guess that the
strncpy is directly in e_border.c (though it could have come from an
inline func or macro form eina etc.)... but it's the best guess i have.
the strncpy will have problems if bd->client.icccm.class > 4096 in
size. buf will not be nul terminated then:
The strncpy() function is similar, except that at most n bytes of src
are copied. Warning: If there is no null byte among the first n bytes
of src, the string placed in dest will not be null-terminated.
as per manpage. so there was a lurking bug with a non 0 terminated
buffer. also added check for bd->client.icccm.class as it could be
null...
this fixes the case where a drag is occurring on a window and the window is closed/hidden before the dnd leave event occurs. previously this would break things to a moderate degree and cause further dnd operations to fail, but now we bravely soldier onward