summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--xplsprinters.c29
1 files changed, 18 insertions, 11 deletions
diff --git a/xplsprinters.c b/xplsprinters.c
index d29a6fd..5b63fa8 100644
--- a/xplsprinters.c
+++ b/xplsprinters.c
@@ -115,15 +115,10 @@ void print_medium_sizes( Display *pdpy, XPContext pcontext )
static
void print_resolutions( Display *pdpy, XPContext pcontext )
{
- long dpi;
XpuResolutionList list;
int list_count;
int i;
-
- if( XpuGetResolution(pdpy, pcontext, &dpi) == 1 )
- {
- printf("\tdefault-printer-resolution=%ld\n", dpi);
- }
+ char *defresname; /* name of default resolution */
list = XpuGetResolutionList(pdpy, pcontext, &list_count);
if( !list )
@@ -132,10 +127,26 @@ void print_resolutions( Display *pdpy, XPContext pcontext )
return;
}
+ defresname = XpGetOneAttribute(pdpy, pcontext, XPDocAttr, "default-printer-resolution");
+ if( defresname )
+ {
+ XpuResolutionRec *res = XpuFindResolutionByName(list, list_count, defresname);
+ if( res )
+ {
+ printf("\tdefault-printer-resolution=%s (%ldx%ld)\n", res->name, res->x_dpi, res->y_dpi);
+ }
+ else
+ {
+ fprintf(stderr, "XpuFindResolutionByName() returned no match for default resolution '%s'\n",
+ defresname);
+ }
+ XFree(defresname);
+ }
+
for( i = 0 ; i < list_count ; i++ )
{
XpuResolutionRec *curr = &list[i];
- printf("\tresolution=%ld\n", curr->dpi);
+ printf("\tresolution=%s (%ldx%ld)\n", curr->name, curr->x_dpi, curr->y_dpi);
}
XpuFreeResolutionList(list);
@@ -236,10 +247,6 @@ void print_detailed_printer_info(XPPrinterRec *xp_rec, int detailLevel)
static
void print_printer_info(XPPrinterRec *xp_rec, int detailLevel)
{
- Display *pdpy; /* X connection */
- XPContext pcontext; /* Xprint context */
- long dpi;
-
printf("printer: %s\n", xp_rec->name);
if( detailLevel < 1 )