Skip to content

Commit

Permalink
WIP: derive default selection width from display dpi
Browse files Browse the repository at this point in the history
Closes: #285
  • Loading branch information
N-R-K committed Jan 30, 2025
1 parent c6f9138 commit e923fbe
Show file tree
Hide file tree
Showing 6 changed files with 13 additions and 3 deletions.
2 changes: 1 addition & 1 deletion configure.ac
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ AS_IF([test "x$orig_CFLAGS" = "x"], [
AX_APPEND_LINK_FLAGS(["-flto"])
])
m4_foreach([SCROT_FLAG],
[["-O3"], ["-Wall"], ["-Wextra"], ["-Wpedantic"]], [
[["-O3"], ["-Wall"], ["-Wextra"], ["-Wpedantic"], ["-fno-math-errno"]], [
AX_APPEND_COMPILE_FLAGS(["SCROT_FLAG"])
AS_IF([test "x$LTO_ENABLED" = "xyes"], [
AX_APPEND_LINK_FLAGS(["SCROT_FLAG"])
Expand Down
1 change: 1 addition & 0 deletions deps.pc
Original file line number Diff line number Diff line change
Expand Up @@ -2,4 +2,5 @@ Name: scrot's mandatory dependencies
Description: ditto
Version: infinite
Cflags: -D_XOPEN_SOURCE=700L
Libs: -lm
Requires: x11 imlib2 >= 1.11.0 xcomposite >= 0.2.0 xext xfixes >= 5.0.1 xinerama >= 1.1.3
2 changes: 1 addition & 1 deletion man/scrot.txt
Original file line number Diff line number Diff line change
Expand Up @@ -175,7 +175,7 @@ SELECTION STYLE

Without the -l option, a default style is used:

mode=auto,style=solid,width=1,opacity=100
mode=auto,style=solid,width=1,opacity=100 # TODO: update the default width here

Example:

Expand Down
1 change: 0 additions & 1 deletion src/options.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,6 @@ struct ScrotOptions opt = {
.quality = 75,
.compression = 7,
.lineStyle = LineSolid,
.lineWidth = 1,
.lineOpacity = SELECTION_OPACITY_DEFAULT,
.stackDirection = HORIZONTAL,
.outputFile = defaultOutputFile,
Expand Down
9 changes: 9 additions & 0 deletions src/scrot_selection.c
Original file line number Diff line number Diff line change
Expand Up @@ -39,6 +39,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <math.h>

#include <Imlib2.h>
#include <X11/Xlib.h>
Expand Down Expand Up @@ -423,6 +424,14 @@ Imlib_Image scrotSelectionSelectMode(void)
opt.lineMode = LINE_MODE_CLASSIC;
}

if (opt.lineWidth == 0) {
double mmToInches = 1 / 25.4;
double inchesDiag = hypot(scr->mwidth, scr->mheight) * mmToInches;
double pixelsDiag = hypot(scr->width, scr->height);
double dpi = round(pixelsDiag / inchesDiag);
opt.lineWidth = CLAMP(round(dpi / 75.0), 1, 8);
}

if (opt.delaySelection)
scrotDoDelay();

Expand Down
1 change: 1 addition & 0 deletions src/util.h
Original file line number Diff line number Diff line change
Expand Up @@ -43,6 +43,7 @@ CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.

#define ARRAY_COUNT(X) (sizeof(X) / sizeof(0[X]))
#define MAX(A, B) ((A) > (B) ? (A) : (B))
#define CLAMP(X, LO, HI) ((X) < (LO) ? (LO) : ((X) > (HI) ? (HI) : (X)))

typedef struct {
char *buf;
Expand Down

0 comments on commit e923fbe

Please sign in to comment.