Commit Graph

164 Commits

Author SHA1 Message Date
Bert Münnich
f7fc6637f3 Support X resource entries with Sxiv class name 2019-01-23 20:04:17 +01:00
Bert Münnich
e4fb084f26 Fix code style of merged code 2019-01-23 20:00:18 +01:00
noamcore
4853e17b83 Add Xresources capability 2019-01-23 19:53:39 +01:00
Bert Münnich
0bf3265430 Set window title only once at startup
Putting image info in the title predates the info bar; it no longer seems
necessary.

Fixes issue #318.
2018-10-15 15:29:39 +02:00
Bert Münnich
b78aaee9d7 Initialize window bar buffers to empty string
Fixes issue #308.
2018-04-11 09:55:28 +02:00
Bert Münnich
e63843d369 Simplify drawing of bar text
Non-fitting text is truncated by simply cutting it off.

win_textwidth() has been replaced by a simple macro wrapper around
win_draw_text() with a maximum width of zero, which results in a dry-run that
still calculates the number of pixels used by the text, much like snprintf(3)
with a buffer length of zero.
2017-12-07 21:29:44 +01:00
Bert Münnich
3c7d6f3528 Replace utf8codepoint with Chris Wellons' utf8_decode
Code under a different license should be kept in a separate file. This
implemention is a single header file with ~65 lines, so it better fits this
requirement.
2017-12-07 21:19:53 +01:00
Bert Münnich
69b2d3cafd win_textwidth is no longer needed outside window.c 2017-12-07 14:19:35 +01:00
Squibby
eb96c71725 Try to match a fallback font if needed
Fixes #276

Instead of rendering the entire filename at once, Xft will let us do it
character by character. This will allow sxiv to query fontconfig for
a font that can provide any missing codepoints, if needed.

A known issue of this patch is that the "..." dots rendering will not
work properly for very long multibyte filenames. That is because we
cannot easily predict the final width of the rendered filename before
drawing it. I couldn't figure out a clean way to deal with this, so I
ended up just truncating the offending filenames.
2017-12-06 20:39:07 -03:00
Bert Münnich
148026007c One header file for type definitions and function declarations 2017-10-16 21:10:35 +02:00
Bert Münnich
8081cbebf3 Improve mouse support
None of the mouse mappings uses a keyboard modifier, making it possible to
access the most basic features by only using the mouse.

Next/previous image with left button depending on cursor position, middle
button for dragging, right button for switching to thumnail mode and wheel for
zooming.

Users can keep the old behaviour by simply not adapting the changes to the
buttons array in config.def.h to their config.h file.
2017-10-06 10:15:43 +02:00
Bert Münnich
d81442f55d Own win method for mouse cursor location 2017-10-05 13:47:02 +02:00
Bert Münnich
b8fd923e74 Simplify cursor handling 2017-10-05 12:30:31 +02:00
Bert Münnich
e310136e02 Mouse drag translates pointer position to image area
This makes mouse panning more direct and faster.
2017-10-04 18:22:43 +02:00
Bert Münnich
c772d3c3f3 Use -e for X window embedding 2016-10-30 19:16:51 +01:00
shuall
0b758e08f2 added support for XEMBED into other windows (ie tabbed) with -w 2016-10-28 22:09:26 -04:00
Bert Münnich
c280129cef Use Xft for font loading and text drawing 2016-08-06 15:27:58 +02:00
Bert Münnich
d3a70a285d Revised error handling
- Functions warn() and die() replaced by GNU-like error(3) function
- Register cleanup() with atexit(3)
- Functions called by cleanup() are marked with CLEANUP and are not allowed to
  call exit(3)
2015-10-28 23:03:37 +01:00
Bert Münnich
851e4288c1 Prefix safe allocation functions with 'e' instead of 's_' 2015-10-28 22:29:01 +01:00
Bert Münnich
e574a6d0dd Removed feature test macro definitions from source files 2015-10-28 21:37:45 +01:00
Bert Münnich
e0e96977b3 Removed overcautious parameter checks 2015-10-28 21:01:24 +01:00
Bert Münnich
c33f2ad355 Corrected & refactored handling of window bar content...
Old snprintf calls could have overflowed the buffers.
2014-10-01 22:35:22 +02:00
Bert Münnich
d0ba2c585d Simplified thumbnail selection and marks 2014-08-17 23:01:39 +02:00
Bert Münnich
bb6721549b Overhauled window drawing, yet again; fixes issue #155
- Buffer for window content is bigger than the window, minimizes artifacts
  when window is resized
- Back to using XSetWindowBackgroundPixmap() instead of XCopyArea(),
  no need to handle exposure events; X server can show gray background directly
  after resize event before sxiv redraws the window contents
2014-07-28 20:36:32 +02:00
Bert Münnich
5d0679b855 Show key handler status in bar while it is running 2014-06-15 14:15:48 +02:00
Bert Münnich
0b83386bff Do not center window on screen, workaround for issue #9 2014-04-21 21:29:27 +02:00
Bert Münnich
e685859a30 Use a checkerboard background for alpha layer; fixes issue #138 2014-04-06 22:47:42 +02:00
Bert Münnich
72f1b1ca6f Removed command line option -F 2014-02-05 09:58:36 +01:00
Bert Münnich
524d9de877 Removed fit-win-to-img command 2014-02-04 22:38:24 +01:00
Bert Münnich
2e758f78c1 Check if window manager supports fullscreen; related to issue #128 2014-02-02 14:56:01 +01:00
Bert Münnich
e2fa49ecfe Unified X atom initialization 2014-02-02 14:36:10 +01:00
Bert Münnich
135c4f9263 Added window icons; fixes issue #125 2014-01-15 22:40:34 +01:00
Bert Münnich
593da23cf3 Use bgcol as window background pixel; fixed issue #89 2013-04-14 19:50:47 +02:00
Bert Münnich
aac28cce7a Fixed non-ASCII characters in window bar, issue #88 2013-04-06 14:04:46 +02:00
Bert Münnich
30802cec0f Spawn info script & update bar contents only when needed 2013-03-19 21:14:32 +01:00
Bert Münnich
f3298400e6 Spawn and read from info script without blocking 2013-03-19 21:13:44 +01:00
Bert Münnich
c6bfac1566 Merge branch 'sizehints', fixed issue #78 2013-02-09 19:07:29 +01:00
Bert Münnich
1e2ddc44d8 No checks on window size, use whatever the user has specified 2013-02-09 17:24:41 +01:00
Bert Münnich
a527025314 Correctly set window height after i_fit_to_img() 2013-02-09 01:39:18 +01:00
Bert Münnich
cef8d51153 Refined US{Position,Size} & WinGravity handling 2013-02-09 01:36:10 +01:00
Bert Münnich
bf41012493 Merge remote-tracking branch '4z3/set-user-specified-sizehints' into sizehints
Conflicts:
	window.c
2013-02-09 01:21:57 +01:00
Bert Münnich
f7301cf4f9 Correctly updated window pixmap after i_fit_to_img() 2013-02-08 23:26:06 +01:00
Bert Münnich
08ae25da22 Refactored function definitions to use dangling brace 2013-02-08 22:05:31 +01:00
Bert Münnich
6d3bbc6d5e Updated/corrected license header 2013-02-08 21:52:41 +01:00
tv
3f25b907bd When using -g hint the WM that we've got user specified geometry
Without this some window managers (e.g. fvwm) will ignore the initial
window position and place it according to it's own rules.
2013-01-30 20:51:20 +01:00
muennich
d6a475e4b1 Simplified status bar, filled by user script 2013-01-12 23:40:16 +01:00
Bert Münnich
69a6df2762 Merge branch 'winname' 2012-12-01 18:50:59 +01:00
Bert Münnich
22a8b66571 Fixed BadDrawable errors caused by invalid window pixmap 2012-10-29 23:23:50 +01:00
Bert Münnich
4a5d5d26aa Overhauled window drawing
- Draw onto pixmap as before, but use the same size for the pixmap as
  for the window, allocate new pixmap after configure requests
- Use XCopyArea() instead of XSetWindowBackgroundPixmap(), which now
  requires handling of Expose events
2012-10-29 18:36:48 +01:00
Bert Münnich
6f9b4f5b2e New option: -N, set X window resource name 2012-10-29 18:32:56 +01:00
Bert Münnich
d5f0a20de0 Fixed WMProtocols registration order (before mapping window) 2012-08-07 12:09:52 +02:00
Bert Münnich
bca3666862 Fixed issue #47 2012-03-28 21:14:01 +02:00
Bert Münnich
8ab3cee6a5 Fixed issue #44 2012-03-16 21:03:49 +01:00
Bert Münnich
3238ef6bf6 Fixed issue #41, added WIN_FS_COLOR to config.h 2012-03-02 19:42:14 +01:00
Bert Münnich
ed2c9f7caa Display full name in info bar, if there is enough space 2012-02-21 12:49:29 +01:00
Bert Münnich
2d4264af28 Added option -b: disable bar 2012-02-16 23:20:27 +01:00
Bert Münnich
c666d30eea Added it_toggle_bar command; default mapping: XK_b 2012-02-15 22:33:39 +01:00
Bert Münnich
d407dd65d5 Already in the year 2012 2012-02-15 19:16:24 +01:00
Bert Münnich
b752d5c594 Added symbol BAR_SEPARATOR 2012-02-15 18:25:45 +01:00
Bert Münnich
7177270c10 Changed default font string, removed missing fontset warnings 2012-02-12 19:06:07 +01:00
Bert Münnich
b8458271fb Added text bar on bottom of window 2012-02-12 19:00:41 +01:00
Bert Münnich
36177fb180 Updated contact information 2011-10-14 10:40:49 +02:00
Bert Münnich
8dcf682de9 Made all conditionals more precise 2011-09-29 12:43:36 +02:00
Bert
b2a2a62b7b Added own bool type 2011-09-11 21:01:24 +02:00
Bert
6e575b0f72 Strict conformance to IEEE Std 1003.1-2001 2011-09-08 20:54:24 +02:00
Bert
d585b86354 Reformated license header 2011-09-03 23:11:45 +02:00
Bert
de6b58a315 Unified feature test macro requirements 2011-09-03 14:22:06 +02:00
Bert
8763f6930f Corrected FSF address in license headers 2011-08-18 01:18:26 +02:00
Bert
b8ff1677b1 Major code refactoring
- Configurable key and mouse mappings in config.h
- Put event handling code from main.c into events.[ch]
2011-07-26 18:01:29 +02:00
Bert
a271e16744 Reduced usage of preprocessor macros 2011-07-22 14:49:06 +02:00
Bert
d227b17d96 Made fullscreen work under buggy window managers 2011-04-19 14:44:26 +02:00
Bert
0b91328181 Fix fullscreen mode 2011-04-14 20:01:11 +02:00
Bert
d15264ea32 Remove invalid images when loading them; refactorings 2011-04-11 16:58:38 +02:00
Bert
55659ffcc3 Use imlib-handles in thumbs.c instead of pixmaps 2011-03-15 13:55:52 +01:00
Bert
d982b06eed White background for images with alpha 2011-03-09 11:37:49 +01:00
Bert
c05fd44bdd Support for external commands like mogrify & jpegtran 2011-03-01 18:49:02 +01:00
Bert
fde9f5bf85 Hide cursor on redraw or after 1.5s mouse inactivity 2011-02-21 18:26:21 +01:00
Bert
ef24ded6af Highlight selected thumbnail 2011-02-17 16:22:54 +01:00
Bert
1c072cc0d0 Fill window before loading thumbs 2011-02-17 14:20:42 +01:00
Bert
783213c0bb Use watch-cursor while loading thumbnails 2011-02-17 11:08:25 +01:00
Bert
26c2179be7 Refactored thumbs, new files thumbs.[ch] 2011-02-16 21:40:20 +01:00
Bert
8919204a2e Render thumbnails 2011-02-16 18:16:00 +01:00
Bert
7b49740613 First things for thumbnail mode 2011-02-16 16:47:12 +01:00
Bert
d731741f04 Handle WM_DELETE_WINDOW messages correctly, thanks to fungt 2011-02-09 10:01:49 +01:00
Bert
a5335e8ddd Slightly refactored fungts utf-8 title commit 2011-02-09 09:45:35 +01:00
fungt
7fb7b1f4fc Show correct utf-8 title 2011-02-09 09:36:55 +01:00
Bert
603e664f7c Nicer fit window to image 2011-02-06 17:40:48 +01:00
Bert
8339bb7ee7 New key mapping: W, resize window to fit image 2011-02-04 00:25:57 +01:00
Bert
8f4af658ae Refactored, new files util.[ch], C89 2011-02-03 10:15:01 +01:00
Bert
f2ceac2f8a New option: -F, fixed/floating window 2011-02-01 16:40:37 +01:00
Bert
8fb3110ebb Bug fix: handle negative offsets in -g arg correctly 2011-02-01 16:21:58 +01:00
Bert
229830ad18 Replace -w with well-known geometry option 2011-01-30 22:00:58 +01:00
Bert
03bfe1015e Explicitly enable printing of warnings 2011-01-30 16:39:16 +01:00
Bert
c52c4fa69e Mouse-panning while pressing button2 2011-01-29 22:37:40 +01:00
Bert
8123d63c5b Added plenty lots of options 2011-01-28 13:34:16 +01:00
Bert
17e2a795bb Added -w cmdline option 2011-01-27 16:15:43 +01:00
Bert
0497a7f69d Merge remote branch 'falconindy/mouse' 2011-01-26 17:48:11 +01:00
Bert
2b1c0885fe Implemented fullscreen mode 2011-01-23 16:14:41 +01:00
Dave Reisner
13eb5ac929 window.c: include ButtonPress events in Input
Signed-off-by: Dave Reisner <d@falconindy.com>
2011-01-23 09:46:25 -05:00
Bert
0f714bccda Handle window resize events properly 2011-01-22 23:27:29 +01:00