Commit Graph

71 Commits

Author SHA1 Message Date
3760a48abe truncate DPI to an integer before multiplying (Thanks eeemsi)
This fixes i3bar workspace button rendering on non-DPI screens
(oldschool!)
2014-04-26 22:50:31 +02:00
c79c49f69d libi3: add logical_px() for Retina display support 2014-04-26 17:17:37 +02:00
9c15b9504e Fix clang -Wextra except -Wunused-parameter.
Cleared all warnings that occur when passing
CFLAGS="-Wall -Wextra -Wno-unused-parameter" to make using clang 3.3 on
Linux x86-64.
2014-01-02 22:15:33 +01:00
0883dfbe14 only LOG() the DPI when it changes, DLOG() it otherwise (Thanks lkraav)
This avoids flooding stdout every time some text (e.g. a window
decoration) is drawn, yet leaves the message in place when it’s actually
relevant (upon DPI changes).

fixes #1115
2013-12-24 10:35:56 +01:00
eca5e4598a libi3/root_atom_contents: handle data of arbitrary length
Handle data fetched from xcb_get_property_unchecked with arbitrary
length. This avoids having to rely on PATH_MAX macro where it is not
necessary.
2013-11-26 19:58:35 +01:00
18cfc36408 libi3/root_atom_contents: Free xcb reply structures
Free memory allocated during xcb calls.
2013-11-24 13:52:31 +01:00
f22995393a Remove references to PATH_MAX macro
Since the macro PATH_MAX is not defined on every system (GNU/Hurd being
one of those who do not define it), we remove all references to this
macro. Instead, we use a buffer of arbitraty size and grow it when
needed to contain paths.
2013-11-24 13:50:29 +01:00
d3beff2339 make i3bar use libi3’s root_atom_contents()
This removes code duplication, which will be useful for a subsequent
commit.

Furthermore, we now don’t open X11 connections unnecessarily in some
corner cases.
2013-11-22 15:48:45 +01:00
5a4efd04c1 refactor previous commit’s new code into a function, add log message 2013-11-18 23:17:44 +01:00
1d6450f0e8 libi3/font: Set DPI for the pango context
The pango font specification accepts a font size in points, but pango
defaults to a DPI of 96. Create a default PangoContext (which
internally creates a default PangoCairoFontMap as usual) and set the
DPI to the value of the root Screen manually.

Fixes #1115
2013-11-18 23:12:08 +01:00
a49dfaf26c libi3/font: Draw the text at the expected place
When drawing a text with Pango, shift it to the top according to the top
if the glyph if taller than expected
We always shift of (height - savedHeight) which is a no-op for normal glyphs

Signed-off-by: Quentin Glidic <sardemff7+git@sardemff7.net>
2013-09-30 22:51:52 +02:00
0bfcf1a762 Improve error message when $XDG_RUNTIME_DIR is not writable 2013-09-25 19:33:28 +02:00
6582da9939 Merge branch 'master' into next 2013-06-29 19:28:41 +02:00
cecadbfdfe Bugfix: fix bus error on OpenBSD/sparc64 (Thanks tobiasu)
fixes #1034
2013-06-29 19:28:13 +02:00
75206db3a1 Bugfix: s/i3bar/i3-nagbar/ (Thanks badboy) 2013-06-10 23:23:22 +02:00
cbdc8c33dd remove unused pathlen (Thanks gcc) 2013-06-10 23:10:46 +02:00
57b43d84f9 retab! get_exe_path.c
We seriously need auto-formatting.
2013-06-10 23:08:42 +02:00
3930615104 Bugfix: sizeof(destpath)-1 to have space for the trailing NUL (Thanks Merovius) 2013-06-10 23:08:17 +02:00
d51173b2ba i3-nagbar: take our terminal execution kludge to the next level
Please read commit 2bf80528bd first.
Then read the comment within the code of this commit.
Then run in circles and cry loudly.

fixes #1002
fixes #1026
2013-06-10 22:55:39 +02:00
fa1b436fca Bugfix: mark IPC fd CLOEXEC (Thanks Layus)
Without this fix, children of i3bar would inherit the file descriptor of
the IPC connection to i3. Therefore, even if i3bar exits with SIGSEGV,
the connection to i3 stays open. Because nobody actually reads any
messages by i3, the buffer will fill up and i3 can’t deliver any more
messages, and thus busy-loops at that point.

fixes #995
2013-04-14 10:12:21 +02:00
62b0df0640 Make i3-nagbar use the same font as configured for i3 2013-01-26 09:55:38 +01:00
dcb8ac84f8 ipc_recv_message: store message_type, don’t compare. add distinct EOF retval
Also use ELOG, which requires i3-msg to provide logging functions.
2013-01-23 18:51:39 +01:00
7b0d75ee0a ipc_send_message: use stack frame with fixed size 2013-01-11 19:09:41 +01:00
fc0e80ee7f Merge branch 'master' into next 2013-01-09 18:11:17 +01:00
f5b7bfb12e Bugfix: fix IPC messages writes with low buffer sizes (Thanks jasper, dcoppa)
Use the following command to reproduce this bug:

    echo 4096 | sudo tee /proc/sys/net/core/wmem_default

Then just switch workspaces with some windows on it and i3bar would
exit due to malformed IPC messages.

This bug hits OpenBSD users (and possibly other BSDs) due to their lower
default buffer size.

fixes #896
2013-01-09 18:11:03 +01:00
9882a4dc09 fix formatting in get_process_filename.c 2012-12-24 16:57:30 +01:00
b3d7531947 refactor both i3-nagbar starts into src/util.c
With this change, libev >= 4 is a hard dependency. It should be present
in all major linux distributions (even the latest ubuntu LTS).
2012-12-24 16:53:20 +01:00
ef81bd183b Repect AR environment variable 2012-12-17 10:24:42 +01:00
f0d2d84b1c libi3/font: Use "pango:" prefix to avoid confusion
Also add a user-friendly font description syntax to userguide
2012-11-07 21:23:21 +01:00
e4019caf7e clean old and new libi3 (Thanks SardemFF7) 2012-09-20 10:55:26 +02:00
b9fde552d0 fix make clean targets 2012-09-19 18:05:51 +02:00
4636eb840d fix compilation with older xcb-util with -DXCB_COMPAT (Thanks okraits) 2012-09-03 14:55:27 +02:00
125bf09e70 pango: divide by PANGO_SCALE to get a "normal" font size 2012-08-13 13:39:58 +02:00
2896ae8057 logging: make libi3 use verboselog()/errorlog(), provide it in each caller
While this is a bit ugly, it makes the log messages end up where they
are supposed to: in the shmlog/stdout in case of i3 and on stdout in
case of utilities such as i3-input
2012-08-13 13:27:16 +02:00
310f542937 libi3/font: Log the used font 2012-08-13 11:39:30 +02:00
6ff3f7abad libi3: Implement Pango rendering 2012-08-13 11:39:30 +02:00
ec17a26b0e libi3: Rework font to support multiple backends 2012-08-13 11:39:29 +02:00
5d8ccc5912 libi3: Introduce get_visualtype 2012-08-13 11:37:34 +02:00
210fc6dfed libi3: Rework predict_text_width
predict_text_width now takes an i3String as argument
2012-08-13 11:37:23 +02:00
53365fa887 libi3: Rework draw_text
We now have two versions of draw_text
draw_text: Now takes an i3String
draw_text_ascii: Designed for static strings in plain ASCII
2012-08-13 11:37:21 +02:00
7f22d4fe32 libi3: Implement i3String
New type designed to handle UCS-2/UTF-8 conversion nicely
2012-08-13 11:29:18 +02:00
b8e782c983 root_atom_contents: handle CARDINAL atoms such as I3_PID 2012-08-12 14:30:24 +02:00
c7029a5e21 common.mk: Introduce I3_*FLAGS
CPPFLGES, CFLAGS and LDFLAGS should be user variables
We now provide default flags but use I3_*FLAGS flags for our own needed
flags

Also reoder lib flags a bit
2012-07-22 23:53:49 +02:00
3b1b72ecbb *.mk: Support passing specific CFLAGS/LIBS 2012-07-22 23:53:13 +02:00
e452acb30e Add stub Makefiles to allow subdir make calls 2012-07-22 19:57:48 +02:00
e3b9ffe381 Move libi3 to the new Makefile layout 2012-07-22 19:57:21 +02:00
f229570bbc remove unused variable 2012-05-09 19:58:50 +02:00
eeb6ff9237 Move is_debug_build() to libi3/ 2012-05-09 19:12:20 +02:00
206b96202c Use (void) instead of () for functions without args (Thanks fernandotcl)
See also:
http://article.gmane.org/gmane.linux.kernel/1268792

The C compiler will handle (void) as "no arguments" and () as "variadic
function" (equivalent to (...)) which might lead to subtle errors, such
as the one which was fixed with commit 0ea64ae4.
2012-03-31 10:53:04 +02:00
95f510e724 Don't multiply by sizeof(char) twice.
This is a no-op, since sizeof(char) is 1. But still, we shouldn't
multiply twice, it's misleading.
2012-03-26 16:47:44 +02:00